Expand description
scena is a Rust-native scene-graph renderer.
The first implementation slice establishes the public scene/assets/renderer vocabulary and the explicit prepare/render lifecycle.
Re-exports§
pub use animation::AnimationChannel;pub use animation::AnimationClip;pub use animation::AnimationClipKey;pub use animation::AnimationInterpolation;pub use animation::AnimationLoopMode;pub use animation::AnimationMixer;pub use animation::AnimationMixerKey;pub use animation::AnimationOutput;pub use animation::AnimationPlaybackState;pub use animation::AnimationSourceChannel;pub use animation::AnimationSourceClip;pub use animation::AnimationTarget;pub use assets::FileAssetFetcher;pub use assets::ASSET_GEOMETRY_SUMMARY_SCHEMA_V1;pub use assets::ASSET_LOAD_REPORT_SCHEMA_V1;pub use assets::AssetDerivative;pub use assets::AssetEvictionStats;pub use assets::AssetFetcher;pub use assets::AssetLoadControl;pub use assets::AssetLoadOptions;pub use assets::AssetLoadProgress;pub use assets::AssetLoadProgressV1;pub use assets::AssetLoadReport;pub use assets::AssetLoadReportV1;pub use assets::AssetLoadWarning;pub use assets::AssetLoadWarningV1;pub use assets::AssetPath;pub use assets::AssetProvenance;pub use assets::AssetStoreId;pub use assets::Assets;pub use assets::DefaultAssetFetcher;pub use assets::EnvironmentDerivative;pub use assets::EnvironmentDesc;pub use assets::EnvironmentHandle;pub use assets::EnvironmentPreset;pub use assets::EnvironmentPresetMetadata;pub use assets::EnvironmentSourceKind;pub use assets::GeometryHandle;pub use assets::GltfDecoderPolicy;pub use assets::GltfExtensionDiagnostic;pub use assets::GltfExtensionStatus;pub use assets::MaterialHandle;pub use assets::MaterialPresetAssets;pub use assets::MaterialPresetProvenance;pub use assets::MaterialVariantBinding;pub use assets::ModelHandle;pub use assets::RetainPolicy;pub use assets::SceneAsset;pub use assets::SceneAssetAnchor;pub use assets::SceneAssetClip;pub use assets::SceneAssetGeometrySummary;pub use assets::SceneAssetLight;pub use assets::SceneAssetMesh;pub use assets::SceneAssetNode;pub use assets::TextureDesc;pub use assets::TextureFilter;pub use assets::TextureHandle;pub use assets::TextureSamplerDesc;pub use assets::TextureSourceFormat;pub use assets::TextureWrap;pub use assets::WasmEnvironmentDelivery;pub use assets::source_backed_material_preset_provenance;pub use assets::AssetHotReloadError;pub use assets::AssetHotReloadWatcher;pub use assets::KhronosSample;pub use assets::KhronosSampleMetadata;pub use assets::KhronosSamples;pub use capture::CAPTURE_SCHEMA_V1;pub use capture::CaptureAutoFrame;pub use capture::CaptureAutoFrameViewport;pub use capture::CaptureCamera;pub use capture::CaptureDescriptor;pub use capture::CaptureError;pub use capture::CaptureOptions;pub use capture::CapturePayload;pub use capture::CapturePayloadKind;pub use capture::CapturePixelBounds;pub use capture::CapturePixelSummary;pub use capture::CapturePoint2;pub use capture::CaptureProjection;pub use capture::CaptureRevisions;pub use capture::CaptureRgba8;pub use capture::CaptureScreenRect;pub use capture::CaptureViewport;pub use capture::auto_frame_metadata;pub use capture::capture_rgba8;pub use capture::capture_rgba8_from_pixels;pub use capture::fnv1a64_hex;pub use capture::sample_rgba8;pub use capture::summarize_pixel_readback;pub use capture::summarize_rgba8;pub use controls::CameraOrbitUrlState;pub use controls::CameraOrbitUrlStateError;pub use controls::FlyControls;pub use controls::FollowControls;pub use controls::OrbitControlAction;pub use controls::OrbitControls;pub use controls::PointerButton;pub use controls::PointerEvent;pub use controls::PointerEventKind;pub use controls::TouchEvent;pub use controls::TouchEventKind;pub use diagnostics::AdapterLimitsReport;pub use diagnostics::AlphaPipelineStatus;pub use diagnostics::AnimationError;pub use diagnostics::AssetError;pub use diagnostics::Backend;pub use diagnostics::BuildError;pub use diagnostics::CAPABILITY_REPORT_SCHEMA_V1;pub use diagnostics::Capabilities;pub use diagnostics::CapabilityReport;pub use diagnostics::CapabilityReportV1;pub use diagnostics::CapabilityStatus;pub use diagnostics::ChangeKind;pub use diagnostics::DebugOverlay;pub use diagnostics::DevicePoll;pub use diagnostics::Diagnostic;pub use diagnostics::DiagnosticCode;pub use diagnostics::DiagnosticSeverity;pub use diagnostics::Error;pub use diagnostics::GpuAdapterReport;pub use diagnostics::HardwareTier;pub use diagnostics::ImportDiagnosticOverlay;pub use diagnostics::ImportDiagnosticOverlayKind;pub use diagnostics::ImportError;pub use diagnostics::InstantiateError;pub use diagnostics::LookupError;pub use diagnostics::NotPreparedReason;pub use diagnostics::OutputColorSpace;pub use diagnostics::OutputStageStatus;pub use diagnostics::PostProcessingDepthSourceV1;pub use diagnostics::PostProcessingPassV1;pub use diagnostics::PostProcessingReportV1;pub use diagnostics::PrepareError;pub use diagnostics::RenderError;pub use diagnostics::RenderOutcome;pub use diagnostics::RendererStats;pub use geometry::Aabb;pub use geometry::GeometryDesc;pub use geometry::GeometryError;pub use geometry::GeometryMorphTarget;pub use geometry::GeometrySkin;pub use geometry::GeometryTopology;pub use geometry::GeometryVertex;pub use geometry::Primitive;pub use geometry::SkinningMatrix;pub use geometry::StaticBatchReport;pub use geometry::Vertex;pub use material::AlphaMode;pub use material::Color;pub use material::ColorParseError;pub use material::DEFAULT_EDGE_ANGLE_THRESHOLD_DEGREES;pub use material::DEFAULT_STROKE_WIDTH_PX;pub use material::MaterialDesc;pub use material::MaterialKind;pub use material::TextureColorSpace;pub use material::TextureTransform;pub use picking::CursorPosition;pub use picking::Hit;pub use picking::HitTarget;pub use picking::InteractionContext;pub use picking::InteractionStyle;pub use picking::Viewport;pub use platform::NativeWindowHandle;pub use platform::PlatformSurface;pub use platform::SurfaceEvent;pub use platform::SurfaceKind;pub use platform::SurfaceSize;pub use platform::SurfaceViewport;pub use reference_image::ReferenceImage;pub use reference_image::ReferenceImageError;pub use reference_image::ReferenceImageReport;pub use reference_image::ReferenceImageTolerance;pub use reference_image::regress;pub use reference_image::regress_with_tolerance;pub use render::AntiAliasing;pub use render::AutoExposureConfig;pub use render::AutoExposureResult;pub use render::Background;pub use render::OffscreenTarget;pub use render::OrderIndependentTransparencyConfig;pub use render::PixelReadback;pub use render::PostBloomConfig;pub use render::Profile;pub use render::Quality;pub use render::RenderMode;pub use render::Renderer;pub use render::RendererOptions;pub use render::ScreenSpaceAmbientOcclusionConfig;pub use render::Tonemapper;pub use render::estimate_auto_exposure_from_linear_colors;pub use render::estimate_auto_exposure_from_srgb8;pub use scene::AnchorFrame;pub use scene::AnchorKey;pub use scene::Angle;pub use scene::AnnotationAnchor;pub use scene::AnnotationAnchorTarget;pub use scene::AnnotationProjectionReportV1;pub use scene::AnnotationProjectionV1;pub use scene::Camera;pub use scene::CameraKey;pub use scene::ClippingPlane;pub use scene::ClippingPlaneKey;pub use scene::ClippingPlaneSet;pub use scene::ConnectOptions;pub use scene::ConnectionAlignment;pub use scene::ConnectionError;pub use scene::ConnectionLineOverlay;pub use scene::ConnectionMagnetPreview;pub use scene::ConnectionMagnetVisualCue;pub use scene::ConnectionParenting;pub use scene::ConnectionPreview;pub use scene::ConnectionRequest;pub use scene::ConnectionRoll;pub use scene::ConnectionWarning;pub use scene::ConnectorFrame;pub use scene::ConnectorKey;pub use scene::ConnectorMetadata;pub use scene::ConnectorPolarity;pub use scene::ConnectorRollPolicy;pub use scene::DepthRange;pub use scene::DirectionalLight;pub use scene::FramingOptions;pub use scene::FramingOutcome;pub use scene::GridFloorHandles;pub use scene::GridFloorOptions;pub use scene::ImportAnchor;pub use scene::ImportAnchorDebugMetadata;pub use scene::ImportClip;pub use scene::ImportConnector;pub use scene::ImportOptions;pub use scene::ImportPivot;pub use scene::Instance;pub use scene::InstanceCullingPolicy;pub use scene::InstanceId;pub use scene::InstanceSet;pub use scene::InstanceSetKey;pub use scene::LabelBillboard;pub use scene::LabelDesc;pub use scene::LabelKey;pub use scene::LabelRasterization;pub use scene::Light;pub use scene::LightBuilder;pub use scene::LightKey;pub use scene::MeshBuilder;pub use scene::MeshNode;pub use scene::ModelBuilder;pub use scene::ModelNode;pub use scene::Node;pub use scene::NodeKey;pub use scene::NodeKind;pub use scene::OrthographicCamera;pub use scene::PerspectiveCamera;pub use scene::PointLight;pub use scene::ProjectedPoint;pub use scene::SCENE_ANNOTATION_PROJECTION_SCHEMA_V1;pub use scene::Scene;pub use scene::SceneDirtyState;pub use scene::SceneImport;pub use scene::SceneSkinBinding;pub use scene::ScreenRect;pub use scene::SourceCoordinateSystem;pub use scene::SourceUnits;pub use scene::SpotLight;pub use scene::StudioLightingHandles;pub use scene::Transform;pub use scene::SCENE_INSPECTION_SCHEMA_V1;pub use scene::SceneCameraFrustumInspection;pub use scene::SceneCameraFrustumInspectionV1;pub use scene::SceneDrawInspection;pub use scene::SceneDrawInspectionV1;pub use scene::SceneHostInstanceEntryInspectionV1;pub use scene::SceneHostInstanceSetInspectionV1;pub use scene::SceneInspectionCountsV1;pub use scene::SceneInspectionReport;pub use scene::SceneInspectionReportV1;pub use scene::SceneInspectionRevisionsV1;pub use scene::SceneMaterialInspection;pub use scene::SceneNodeInspection;pub use scene::SceneNodeInspectionV1;pub use scene::SceneNormalInspection;pub use scene::SceneNormalInspectionV1;pub use scene::SceneTextureInspection;pub use scene_host::SCENE_HOST_ANIMATION_INVENTORY_SCHEMA_V1;pub use scene_host::SCENE_HOST_ASSET_IMPORT_SCHEMA_V1;pub use scene_host::SCENE_HOST_SUBTREE_SCHEMA_V1;pub use scene_host::SceneHostAnimationClipV1;pub use scene_host::SceneHostAnimationInventoryV1;pub use scene_host::SceneHostAnimationLoopMode;pub use scene_host::SceneHostAnimationPlayOptions;pub use scene_host::SceneHostAssetImportReportV1;pub use scene_host::SceneHostCameraState;pub use scene_host::SceneHostCore;pub use scene_host::SceneHostEasing;pub use scene_host::SceneHostError;pub use scene_host::SceneHostErrorCode;pub use scene_host::SceneHostSubtreeNodeV1;pub use scene_host::SceneHostSubtreeReportV1;pub use viewer::FirstRender;pub use viewer::HeadlessGltfViewer;pub use viewer::HeadlessGltfViewerBuilder;pub use viewer::InteractiveGltfViewer;pub use viewer::InteractiveGltfViewerBuilder;pub use viewer::ViewerCaptureError;pub use viewer::ViewerPngError;pub use viewer::first_render_gltf_headless;pub use viewer::headless_gltf_viewer;pub use viewer::interactive_gltf_viewer;pub use viewer_element::SCENA_VIEWER_TAG;pub use viewer_element::ScenaViewerAccessibilityDefaults;pub use viewer_element::ScenaViewerAnnotationAnchor;pub use viewer_element::ScenaViewerAnnotationError;pub use viewer_element::ScenaViewerAttributes;pub use viewer_element::ScenaViewerDropDecision;pub use viewer_element::ScenaViewerDropKind;pub use viewer_element::ScenaViewerDroppedFile;pub use viewer_element::ScenaViewerGestureAction;pub use viewer_element::ScenaViewerInspectorDiagnostic;pub use viewer_element::ScenaViewerInspectorSnapshot;pub use viewer_element::ScenaViewerKeyboardAction;pub use viewer_element::ScenaViewerProgress;pub use viewer_element::ScenaViewerProgressPhase;pub use viewer_element::ScenaViewerVariantOption;pub use viewer_element::ScenaViewerVariantSelection;
Modules§
- animation
- glTF animation playback, mixer state, skinning, and morph-target support.
- assets
- Asset fetchers, caches, glTF/GLB parsing, texture decoding, and asset handles.
- capture
- Stable capture descriptors for binding pixels to scene state.
- controls
- Platform-neutral orbit, pan, fly, and focus controls.
- diagnostics
- Structured errors, debug overlays, capability reports, and renderer stats.
- geometry
- Primitive meshes, generated helper geometry, technical lines, arrows, grids, and labels.
- material
- Material descriptors, texture slots, color space, alpha modes, and technical materials.
- picking
- Ray construction, bounds tests, triangle/BVH tests, and typed hit results.
- platform
- Optional native/browser platform adapters. Renderer logic must stay outside this module.
- reference_
image - render
- wgpu device/surface ownership, prepare lifecycle, passes, resource tables, and stats.
- scene
- Scene graph, typed keys, transforms, bounds, anchors, clipping, and queries.
- scene_
host - Generic host facade over
Scene,Assets, andRenderer. - viewer
- High-level viewer helpers built from
Scene,Assets, andRenderer. - viewer_
element - Browser custom-element support for
<scena-viewer>.
Structs§
- Environment
Prefilter Sidecar - Environment
Sidecar Header - Quat
- A quaternion representing an orientation.
- Vec3
- A 3-dimensional vector.
Enums§
Constants§
Functions§
Type Aliases§
- Result
- Crate-level result type for APIs that can return any structured
scenaerror.