# scena v1.0.0 Release Notes
Type: Release notes.
Published: 2026-05-14.
Crates.io: <https://crates.io/crates/scena/1.0.0>.
GitHub release: <https://github.com/johannesPettersson80/scena/releases/tag/v1.0.0>.
docs.rs: <https://docs.rs/scena/1.0.0/scena/>.
## Scope
`scena` is a Rust-native scene-graph renderer for model viewers, glTF/GLB
workflows, CAD-style inspection, industrial visualization, digital-twin UI,
native windows, browser canvases, and deterministic headless rendering.
The v1.0.0 API centers on `Scene`, `Assets`, `Renderer`, and `SceneImport`.
Applications own their event loop and host state; `scena` owns typed scene
data, asset loading, renderer preparation, drawing, diagnostics, and
rendered-output evidence.
## Install
Add the renderer library to an application:
```bash
cargo add scena
```
Equivalent `Cargo.toml` entry:
```toml
[dependencies]
scena = "1.0"
```
Install the bundled CLI tool:
```bash
cargo install scena
scena-convert --help
```
## Highlights
- Rust-native scene graph with typed keys for nodes, cameras, lights,
renderables, instances, connectors, anchors, and imports.
- Explicit `prepare()` / `render()` lifecycle with structured errors instead
of hidden upload, fetch, or shader-compilation work in the render call.
- glTF/GLB loading with scene import handles, animation clips, skinning,
morph-target data, anchors, connector metadata, units, coordinate-system
conversion, and structured extension diagnostics.
- PBR-oriented material model with color-management contracts, texture role
metadata, KTX2 and meshopt feature paths, MikkTSpace tangent parity, and
texture-array batching evidence.
- Native, browser, and headless paths with release-lane artifacts for Linux
Vulkan, macOS Metal, Windows DX12, WebGPU, WebGL2, WASM, and headless 4K
performance.
- Viewer helpers for headless and interactive glTF workflows, including
camera framing, default camera/light/environment setup, diagnostics, and
explicit scene/assets/renderer accessors.
- Public examples covering primitives, GLB viewing, picking and selection,
instancing, labels/helpers, animation, native windows, browser canvas,
headless CI, and industrial-style static scenes.
## Release Evidence
The v1.0.0 release workflow completed successfully:
<https://github.com/johannesPettersson80/scena/actions/runs/25877273460>
The release workflow passed:
- Linux native Vulkan rendered-output lane.
- macOS Metal rendered-output lane.
- Windows DX12 rendered-output lane.
- Browser WebGPU Rust/WASM rendered-output lane.
- Browser WebGL2 Rust/WASM rendered-output lane.
- `wasm32-unknown-unknown` build and size lane.
- Headless 4K performance lane.
- Release-readiness artifact staging.
- Clean `cargo publish --dry-run`.
- crates.io publish.
- GitHub release creation.
Crates.io published package metadata:
- crate: `scena`
- version: `1.0.0`
- license: `MIT OR Apache-2.0`
- rust-version: `1.93`
- edition: `2024`
- checksum:
`4d7232b24512fcc1399dc9714591cc9a7be81bfa7c2b92f421b5d692cae4dcc5`
## Capability And Diagnostics Contract
Capabilities are reported per backend. A capability is `Supported` only when
the corresponding backend path has implementation and evidence; otherwise it
is reported as `Degraded`, `FeatureDisabled`, or a structured unsupported
state. This keeps feature claims aligned with release artifacts.
Renderer diagnostics expose structured errors, capability reports, adapter
reports, renderer statistics, debug overlays, and release evidence so
applications can distinguish unavailable features from renderer failures.
## Compatibility Notes
- `Renderer::prepare` is the synchronization point for scene, material,
environment, target, and debug-overlay changes.
- `Renderer::render` expects a prepared scene and returns structured
`RenderError::NotPrepared` reasons when preparation is stale.
- `SceneImport` is the canonical handle for imported glTF/GLB scene content,
named nodes, anchors, connector metadata, bounds, and clips.
- `scena-convert` is included as the CLI entry point for conversion workflows.
## License
`scena` is licensed under either MIT or Apache-2.0.