Architecture
univis_ui is organized around four main subsystems:
layout/: layout solving and spatial computationinteraction/: picking and interaction statewidget/: ready-made UI widgetsstyle/: fonts, icons, and shared theme resources
Core Idea
Everything in Univis is built from ECS entities and components:
- there is no external retained UI tree
- every UI element is an entity with
UNodeplus optional companion components - layout, interaction, and rendering all run through Bevy systems
Standard Frame Flow
PreUpdate- the picking backend resolves hit entities
Update- widget logic, interaction logic, and visual state changes run here
PostUpdate- the layout pipeline runs:
update_layout_hierarchyupward_measure_pass_cacheddownward_solve_pass_safe
- render and material sync systems apply visual output
- the layout pipeline runs:
Design Goals
- crisp visuals through SDF rendering
- flexible layout through
Flex,Grid,Masonry,Stack, andRadial - easy extension through ECS components and plugins
- debuggable performance through profiling and cache-aware systems