Expand description
BIMIFC Bevy 3D Viewer
Bevy-based 3D viewer for IFC models with WebGPU/WebGL2 rendering. Supports orbit/pan/zoom camera controls, entity selection, and section planes.
Features pure Bevy UI that works on both web (WASM) and native platforms.
Re-exports§
pub use camera::CameraController;pub use camera::CameraMode;pub use camera::CameraPlugin;pub use loader::LoadIfcContentEvent;pub use loader::LoadIfcFileEvent;pub use loader::LoaderPlugin;pub use loader::OpenFileDialogRequest;pub use mesh::AutoFitState;pub use mesh::IfcEntity;pub use mesh::IfcMesh;pub use mesh::IfcMeshSerialized;pub use mesh::MeshGeometry;pub use mesh::MeshPlugin;pub use picking::PickingPlugin;pub use picking::SelectionState;pub use section::SectionPlane;pub use section::SectionPlanePlugin;pub use ui::IfcUiPlugin;pub use ui::UiState;pub use storage::*;
Modules§
- camera
- Camera system with orbit, pan, and zoom controls
- loader
- IFC file loading - handles file dialog, drag-and-drop, and WASM file input
- mesh
- Mesh system for IFC geometry
- picking
- Picking and selection system
- section
- Section plane system
- storage
- Storage types and localStorage bridge
- ui
- Bevy UI components for BIMIFC viewer
Structs§
- Entity
Info - Entity metadata
- IfcScene
Data - Resource containing all IFC scene data
- IfcTimestamp
- Timestamp for detecting localStorage changes (WASM)
- IfcViewer
Plugin - Main IFC viewer plugin - combines all subsystems
- Scene
Bounds - Axis-aligned bounding box for scene
- Viewer
Settings - Viewer settings and state
Enums§
- Theme
- Theme variants
Functions§
- has_
pending_ meshes - Check if pending meshes are available
- is_
debug - Check if debug mode is enabled
- log
- log_
info - poll_
scene_ changes - System to poll for scene changes Checks both direct memory (unified mode) and JS bridge (split mode)
- poll_
selection_ from_ storage - System to poll selection changes from localStorage (UI -> Bevy sync) This allows the UI (Leptos/Yew) to update Bevy’s selection via localStorage
- run_
native - Run native desktop viewer
- run_
on_ canvas - Run the viewer in a native window (desktop)
- run_
with_ data - set_
pending_ meshes - Set pending meshes from Yew (unified mode only) This is called by Yew after parsing geometry, Bevy polls this
- take_
pending_ meshes - Take pending meshes (consumes them)