Skip to content

Conversation

@christian-byrne
Copy link
Contributor

@christian-byrne christian-byrne commented Jul 7, 2025

Summary

Enhances the Level of Detail (LOD) system to be more flexible and component-driven while keeping it simple and zoom-based.

Key Changes

  • Added continuous lodScore (0-1) to useLOD composable for smooth transitions instead of discrete jumps
  • Minimal global CSS optimizations - only essential performance optimizations (disable text-shadow at distance, GPU acceleration for dragging)
  • Comprehensive developer documentation - detailed implementation guide for widget developers and designers
  • Fixed TransformPane tests to match current event listener implementation with options

Benefits

  • Components can now make their own LOD decisions using the continuous score
  • Backwards compatible - existing discrete level system still works
  • Extensive documentation helps developers implement LOD correctly
  • Global CSS only optimizes expensive effects that are invisible at distance

Documentation Added

  • LOD_IMPLEMENTATION_GUIDE.md - Complete guide with examples for developers and designers
  • widgets/README.md - Quick reference for widget development patterns

The enhanced system maintains the zoom-based approach while providing more granular control for individual components to implement their own LOD strategies.

Fixes need for component-driven LOD decisions in Vue nodes system.

┆Issue is synchronized with this Notion page by Unito

@christian-byrne christian-byrne requested review from a team as code owners July 7, 2025 03:41
- Add continuous lodScore (0-1) to useLOD composable for smooth transitions
- Add minimal performance optimizations to existing LOD CSS (disable text-shadow, GPU acceleration)
- Create comprehensive LOD implementation guide for widget developers
- Fix TransformPane tests to match current event listener implementation

Key improvements:
- Components can now make their own LOD decisions using lodScore
- Enhanced existing LOD CSS with performance optimizations only
- Extensive documentation with examples for developers and designers
- Backwards compatible - existing discrete levels still work

The enhanced system maintains the zoom-based approach while providing
more granular control for individual components.
- Remove widgets/README.md (not requested, inaccurate)
- Clarify lodScore as primary API for granular control
- Clarify lodLevel as convenience API for simple decisions
- Update documentation examples to show both approaches
@christian-byrne
Copy link
Contributor Author

The idea here is to use less global CSS classes for LOD and instead expose the useLOD so that each component can get the current LOD level or score and decide how to render.

We might get design help on this later.

@christian-byrne christian-byrne merged commit 1098d3b into vue-nodes-transform-pane Jul 7, 2025
2 checks passed
@christian-byrne christian-byrne deleted the enhanced-lod-system branch July 7, 2025 17:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants