Skip to content

scenix v0.3.0

Choose a tag to compare

@github-actions github-actions released this 17 May 08:47
· 23 commits to main since this release
33e2ae8

scenix v0.3.0

Install

[dependencies]
scenix = "0.3.0"

Highlights

  • New scenix-mesh crate for renderer-agnostic CPU geometry.
  • Built-in primitive generators for boxes, spheres, planes, cylinders, cones, capsules, torus meshes, torus knots, icospheres, circles, rings, lathe surfaces, extrusions, tubes, and 2D shapes.
  • Geometry utilities for validation, face-weighted normals, tangent generation, bounds, indexed merging, morph targets, instanced meshes, and batched meshes.
  • The facade crate now enables the mesh feature by default alongside scene.

Crates published to crates.io

Crate Version Description
scenix-math 0.3.0 Custom no_std 3D math primitives
scenix-core 0.3.0 Shared IDs, colors, errors, and traits
scenix-input 0.3.0 Platform-agnostic input state types
scenix-scene 0.3.0 GPU-free scene graph and traversal APIs
scenix-mesh 0.3.0 CPU-side geometry, primitive generation, instancing, and batching
scenix 0.3.0 Facade crate for scenix Geometry APIs

Geometry example

use scenix::{MaterialId, Mesh, SceneNode, sphere_geometry};

let geometry = sphere_geometry(1.0, 32, 16);
let material = MaterialId::new(1);
let mesh = Mesh::new(geometry, material);
let node = SceneNode::mesh("planet", scenix::MeshId::new(1), material);

assert!(!mesh.geometry.positions.is_empty());
assert!(matches!(node.kind, scenix::NodeKind::Mesh { .. }));

Verification

  • cargo test --workspace --all-features
  • cargo test -p scenix-math -p scenix-core -p scenix-input -p scenix-scene -p scenix-mesh --no-default-features
  • cargo clippy --workspace --all-features -- -D warnings
  • cargo fmt --check
  • cargo doc --workspace --all-features --no-deps
  • cargo publish --dry-run for every crate before publish