Changelog

Track new features and enhancements to the STP file viewer

Major Bug Fixes and Performance Improvements

v1.0.7

Fixed critical import and measurement issues, optimized file loading performance by up to 95%

2025/09/02

Critical Bug Fixes

This release addresses several critical issues that significantly impacted user experience:

Import Functionality Fix

Problem Solved: "Works first time, fails subsequently" issue completely resolved

  • Root Cause: Global window.OV object was incorrectly cleared during component cleanup
  • Solution: Fixed resource management to preserve global library objects
  • Impact: Import and New File functions now work consistently every time
  • User Experience: Restored complete upload flow with progress indicators

Measurement Tool Fix

Problem Solved: Measurement markers not appearing on 3D models

  • Root Cause: Keyboard event listeners conflicting with measurement tool state
  • Solution: Implemented direct Official API calls using window.OV global object
  • Impact: Measurement markers now display correctly on first click
  • Technical Details: Removed state management conflicts between keyboard shortcuts and tool activation

Mobile More Menu Fix

Problem Solved: More menu button unresponsive on mobile devices in fullscreen mode

  • Root Cause: Z-index layering conflicts with fullscreen container
  • Solution: Elevated dropdown menu z-index to proper layer (z-10000)
  • Impact: Mobile users can now access all toolbar functions
  • Additional Improvements: Optimized button layout and text labels for mobile screens

Performance Optimization

Achieved significant performance improvements in file loading:

File Loading Speed

Results: 60-95% performance improvement across all file sizes

File SizeBeforeAfterImprovement
1MB840ms39ms95.4% faster
10MB1,380ms255ms81.5% faster
100MB6,780ms2,415ms64.4% faster

Optimization Techniques

  • I/O Reduction: Merged 3 file read operations into 1
  • Promise Optimization: Removed unnecessary Promise.resolve wrappers
  • Progress Calculation: Simplified mapping logic
  • Memory Management: Fixed multiple memory leak sources

User Experience Improvements

  • Unified Experience: Fullscreen and normal modes now behave identically
  • Consistent UI Flow: Import and New File both provide complete upload experience
  • Better Error Messages: Improved error categorization and user-friendly descriptions
  • Mobile Optimization: Enhanced responsive design for touch devices

Technical Improvements

Architecture Enhancements

  • Resource Management: Proper separation of global vs component resources
  • State Management: Simplified state logic following KISS principle
  • Event Handling: Resolved conflicts between keyboard and mouse events
  • Code Quality: Removed ~400 lines of dead code from previous versions

Development Best Practices Established

  • KISS Principle: Simple solutions proved more effective than complex implementations
  • User-First Approach: Prioritized user experience over technical perfection
  • Library Integrity: Never override third-party library internal methods
  • Global Resource Management: Global objects must persist across component lifecycle

Lessons Learned

This release reinforced several important development principles:

  1. "First time works, subsequent fails" pattern indicates state pollution or resource cleanup issues
  2. User experience problems often have simple solutions, not complex technical fixes
  3. Performance optimization should focus on reducing redundant operations
  4. Global resources like window.OV should never be cleared in component cleanup
  5. Simple is better: 3-line solutions often outperform 29-line implementations

Migration Notes

No breaking changes. All improvements are backward compatible. Users will experience:

  • Faster file loading times
  • More reliable import/export functionality
  • Better mobile experience
  • Consistent behavior across all usage scenarios

Next Steps

  • Continue monitoring performance metrics
  • Gather user feedback on improved workflows
  • Plan additional mobile optimizations
  • Explore progressive loading for very large files

Performance Optimization

v1.0.6

Major code cleanup and performance improvements while maintaining 18-second loading performance

2025/08/28

Code Quality Improvements

Comprehensive cleanup and optimization to improve maintainability and performance:

  • Dead Code Removal: Eliminated ~400 lines of unused code including mobile-toolbar.tsx
  • Import Cleanup: Fixed unused imports across multiple components
  • Memory Leak Fixes: Resolved event listener, timer, and WebGL resource leaks
  • State Management: Implemented smart grouping to reduce unnecessary re-renders

Error Handling Enhancement

  • Intelligent Error Categorization: Added categorizeError function for better user feedback
  • Specific Error Types: Memory errors, WebGL errors, and file validation errors
  • User-Friendly Messages: Clear error descriptions in both English and Chinese

Performance Results

  • Loading Time: Maintained 18-second loading performance for 14.6MB STEP files
  • Code Reduction: ~400 lines of code removed
  • Memory Optimization: Fixed multiple memory leak sources
  • Stability: Enhanced error handling and resource cleanup

Technical Implementation

  • Smart State Grouping: Separated core states from UI states for optimal rendering
  • Resource Management: Improved WebGL resource cleanup and Object URL handling
  • Type Safety: Enhanced TypeScript error handling with proper categorization
  • KISS Principle: Simplified implementations for better maintainability

Progress Callback Investigation

  • Research Completed: Analyzed Online3DViewer source code for progress callbacks
  • Implementation Attempted: Method override approach caused severe performance regression (18s → 60s+)
  • Status: Deferred due to performance impact - user experience prioritized over progress indicators
  • Learning: Third-party library internal methods should not be overridden

Development Guidelines

  • Performance takes priority over feature additions
  • Avoid overriding third-party library internal methods
  • KISS principle: simple implementations are more stable
  • 18-second loading time is the key performance metric

Mobile Operation Guide Optimization

v1.0.4

Smart device detection with adaptive operation hints

2025/08/27

Smart Operation Guide Adaptation

Optimized mobile user experience with device-specific operation hints:

  • Device Detection: Auto-detect touch devices and switch operation guides
  • Mobile Gestures: One finger rotate, pinch to zoom, two finger pan
  • Desktop Operations: Mouse drag, scroll wheel zoom, keyboard shortcuts
  • Icon Optimization: Touch icons for mobile, mouse icons for desktop

Technical Implementation

  • Responsive Detection: Use useResponsive Hook for device detection
  • Native Support: Based on Online3DViewer TouchInteraction
  • Internationalization: Support for Chinese and English hints
  • Component Decoupling: Independent operation guide component

User Experience Improvements

  • Mobile no longer shows irrelevant "left mouse button" hints
  • Touch gesture descriptions match mobile device operations
  • Automatic interface adaptation without manual switching
  • Optimized display for small screen devices

Bug Fixes

  • Resolved confusion for mobile users seeing desktop operation hints
  • Improved touch device interaction experience
  • Unified user interface style across different devices

Mobile Toolbar Optimization

v1.0.5

Fixed long filename compression issue and improved mobile layout

2025/08/27

Mobile Layout Enhancement

Resolved the mobile toolbar issue where long filenames compressed tool buttons:

  • Responsive Filename: 120px limit on mobile, 200px maintained on desktop
  • Information Streamlining: Hide file extensions on mobile, show essential info only
  • Button Optimization: Hide non-essential buttons to free up space
  • Spacing Adjustment: Compact button spacing ensures all function buttons display properly

User Experience Improvements

  • Long Filename Handling: Auto-truncation with hover for full name display
  • Enhanced Tooltips: Mobile devices show detailed button descriptions
  • Space Utilization: Maximize 3D viewing area, minimize toolbar footprint
  • Responsive Design: Auto-adapts optimal layout for different screen sizes

Technical Implementation

  • Tailwind CSS: Precise responsive breakpoint control
  • Progressive Enhancement: Layered design from mobile to desktop
  • Space Management: Intelligent hide/show strategies
  • Functionality Preservation: All core features accessible across devices

Issues Resolved

  • Fixed fullscreen button cutoff caused by long filenames
  • Improved toolbar layout on small screen devices
  • Enhanced button spacing and usability on touch devices
  • Ensured important function buttons remain visible and operable

Theme Synchronization Fix

v1.0.3

Fixed 3D viewer theme switching synchronization issues and improved visual experience

2025/08/26

Theme Integration Fix

We resolved an important user experience issue:

  • 3D Viewer Theme Sync: Fixed the synchronization issue between website theme switching and 3D viewer background
  • Visual Consistency: Ensured light/dark mode consistency across all interface elements
  • SetBackgroundColor API: Optimized the Online3DViewer background color setting method
  • Type Safety: Used type assertions to resolve TypeScript compatibility issues

Brand Updates

  • New Logo Application: Applied the new STP Viewer brand identity across all website locations
  • Icon Unification: Updated favicon, app icons, and social media icons
  • PWA Icons: Improved progressive web app icon configuration

Feature Display Optimization

  • Real Screenshots: Features component uses actual STP Viewer functionality screenshots
  • Product Demonstration: Better showcase of actual 3D viewing and file processing capabilities
  • User Trust: Enhanced user confidence through real interface screenshots

Technical Improvements

  • API Call Optimization: Improved SetBackgroundColor method invocation approach
  • RGBAColor Objects: Proper creation and usage of RGBAColor objects for background setting
  • Forced Rendering: Ensured immediate 3D viewer display updates after theme switching

Bug Fixes

  • Fixed 3D viewer background remaining black in dark mode
  • Resolved theme switching delays or failures
  • Improved type checking and compilation compatibility
  • Optimized theme display effects across various devices

Interface Optimization Update

v1.0.2

Removed IGES format support, added user review system and homepage improvements

2025/08/20

Product Optimization

We focused on STEP format support to provide a superior experience:

  • Focus on STEP Format: Removed IGES format support to focus on STEP (.stp/.step) file optimization
  • User Review System: Added user testimonials display and feedback system
  • Usage Guide: Added three-step usage guide for new users to get started quickly
  • Technical Specifications: Added detailed technical specifications and performance metrics

Interface Improvements

  • Homepage Redesign: Adopted SaaS best practices to optimize page layout
  • Responsive Enhancement: Improved user experience on mobile and tablet devices
  • Browser Compatibility: Added browser compatibility information page
  • Internationalization Improvement: Enhanced translation consistency between Chinese and English versions

Feature Enhancements

  • Statistics Display: Show user usage, file processing volume and other operational data
  • FAQ Section: Improved FAQ section to answer common user questions
  • Feedback Channels: Added various user feedback and contact methods

Bug Fixes

  • Fixed missing internationalization issues
  • Resolved inconsistent component display problems
  • Fixed mobile layout issues
  • Improved page loading performance

Performance Optimization Update

v1.0.1

Increased file size limit to 100MB and optimized large file loading performance

2025/08/15

Performance Improvements

We've made significant performance optimizations to STP Viewer:

  • File Size Limit Increase: Raised from 50MB to 100MB, supporting larger STEP files
  • Large File Optimization: Improved loading and rendering performance for large files
  • Memory Management: Optimized memory usage, reducing crash risks
  • Loading Time: 30% reduction in loading time for medium to large files

Technical Enhancements

  • Chunked Validation: Implemented chunked validation for large files to improve response speed
  • WebGL Optimization: Enhanced WebGL memory management and rendering performance
  • Progress Indicators: Improved progress feedback during large file loading
  • Browser Compatibility: Enhanced support for older browser versions

User Experience Improvements

  • Error Message Optimization: More accurate file size and format error messages
  • Upload Feedback: Better feedback during file upload and processing
  • Internationalization Updates: Synchronized updates for Chinese and English interface text

Bug Fixes

  • Fixed memory overflow issues when uploading large files
  • Resolved display issues with filenames containing special characters
  • Fixed touch operation issues on mobile devices
  • Improved error messages when WebGL is not supported

STP Viewer Initial Release

v1.0.0

First version of the online STP file viewer with STEP format 3D preview

2025/08/01

Core Features

We're excited to release the first version of STP Viewer with the following core features:

  • STEP File Support: Upload and parse .stp and .step format files
  • Real-time 3D Preview: High-performance 3D model rendering based on WebGL
  • File Validation: Smart file format detection and integrity verification
  • Responsive Design: Perfect adaptation for mobile and desktop devices
  • Theme Switching: Support for light and dark theme modes

Technical Features

  • Built with Next.js 15 and React 18 for excellent performance
  • Integrated Online3DViewer engine supporting complex CAD models
  • Complete internationalization support (Chinese/English)
  • Browser compatibility optimization for mainstream modern browsers

Performance Specifications

  • Supported file size: 1KB - 50MB
  • Loading time: Small files < 1.5 seconds
  • Memory usage: Base < 50MB