Skip to main content

Crate scena

Crate scena 

Source
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, and Renderer.
viewer
High-level viewer helpers built from Scene, Assets, and Renderer.
viewer_element
Browser custom-element support for <scena-viewer>.

Structs§

EnvironmentPrefilterSidecar
EnvironmentSidecarHeader
Quat
A quaternion representing an orientation.
Vec3
A 3-dimensional vector.

Enums§

EnvironmentSidecarProfile

Constants§

SIDECAR_FILE_SUFFIX

Functions§

parse_sidecar_header

Type Aliases§

Result
Crate-level result type for APIs that can return any structured scena error.