Expand description
A no_std 3D graphics and physics engine for embedded systems.
Frame flow is record / execute: engine::K3dengine::record walks the
scene once into a fixed-capacity pipeline::command_buffer::CommandBuffer, then
engine::K3dengine::execute rasterizes from it. Both stages operate on
caller-provided buffers only — no heap allocation on the frame path.
Everything heavy is behind cargo features; see the crate README for the
MCU feature recipes. New here? Start with the prelude.
Modules§
- absm
anim-blend - Animation Blending State Machine (ABSM) for no_std embedded systems.
- animation
- Vertex Animation System
- billboard
scene - Billboard rendering for sprites that always face the camera
- bridge
- Interoperability bridges between embedded-3dgfx and embedded-graphics.
- bsp
raycast - BSP world rendering —
K3dengine::record_bspandrender_bsp_direct. - character
scene - First-person character controller with axis-aligned box collision.
- color
- Perceptual color models and standard palettes for embedded systems.
- color_
gradient - Multi-stop color gradient sampling for no_std embedded systems.
- config
- Quality tiers, material profiles, and per-MCU capability profiles.
- curve
- Piecewise spline curve evaluation for animations, tweens, and particle parameter ramps.
- decal
- Decal projection volumes and grounded blob shadows for no_std embedded systems.
- embassy
embassy - Optional Embassy integration helpers (feature
embassy). - engine
- The K3dengine facade: camera, render settings, and record/execute entry points.
- error
- Rendering error taxonomy shared by the record and execute stages.
- gizmos
gizmos - Debug wireframe helpers (AABB / frustum) emitted as line draw primitives.
- hardware_
profile - Board / silicon capability profiles used to pick rendering budgets.
- input
- Platform-agnostic input state, buttons, analog sticks, and debouncing.
- lens_
flare - Atmospheric lens-flare effect with occlusion picking.
- matcap
- Procedural MatCap (Spherical Environment Map) texture generator for embedded systems.
- navmesh
- Navigation Mesh (Navmesh) and A* Pathfinding with Funnel Algorithm for no_std embedded systems.
- occlusion
- Software occlusion query for z-buffer-based culling on no_std embedded systems.
- painters
painters - Painter’s Algorithm Implementation
- particles
scene - Fixed-capacity, no-alloc particle system for embedded environments.
- perfcounter
perfcounter - Lightweight frame/timing counters for perfcounter builds.
- physics
physics - Physics engine for embedded 3D graphics.
- pipeline
- The graphics pipeline.
- pool
- Generational Arena Pool for fixed-capacity, zero-allocation object management.
- prelude
- Common imports for getting started.
- ray_
primitive - Analytical ray-primitive intersection tests.
- raycast
- High-performance 2.5D DDA Raycasting and Mode 7 True 3D Perspective Floorcasting Engine.
- scene_
format scene - Versioned chunked scene container decoding.
- scene_
stream scene - Cooperative, non-blocking scene loading and upload.
- sector_
lights raycast - Doom-style sector light animation descriptors and evaluators.
- simd_
dsp - SIMD, DSP, and SWAR arithmetic primitives.
- simplex_
stroke_ font gizmos - Static Simplex Hershey font data used by text gizmos.
- skeleton
scene - Skeletal animation system with subspace deformation (skinning).
- softbody
physics - Soft body physics using mass-spring systems and position-based dynamics.
- state_
machine - Zero-allocation application state machine inspired by
bevy_state. - telemetry
- Record/execute telemetry counters for budget and regression checks.
- timer
- Zero-allocation timer, stopwatch, and fixed-timestep accumulator.
- transform_
anim scene - Keyframed rigid-body transform animation (position, rotation, scale).
- tween
scene - Time-based interpolation and easing for boot sequences and UI motion.
Structs§
- Mesh
RayCast Hit - Result of a ray cast against triangle geometry.
Constants§
- DEPTH_
EPSILON depth-u16 - Z_
MAX_ VALUE depth-u16
Functions§
- clear_
zbuffer - mesh_
ray_ cast - Ray-cast against triangle geometry using Möller–Trumbore intersection.
- mesh_
ray_ cast_ bounded aabb-cull - Like
mesh_ray_cast, with an optional model-space AABB broadphase. Requires theaabb-cullfeature. - mesh_
ray_ cast_ mesh aabb-cull - Convenience: ray-cast a
K3dMeshusing its model matrix and cached AABB. - to_
zdepth
Type Aliases§
- ZDepth
depth-u16