Lexiverse
Lexiverse - AI contextual reading engine for English learners. Your next article is your next review.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
3d-lab is an interactive learning repository for 3D fundamentals: vertices, triangles, indexed meshes, attributes, normals, tangents, transforms, cameras, lighting, procedural geometry, animation, skinning, asset pipelines, and scene authoring.Read the full README ↗3d-lab is an interactive learning repository for 3D fundamentals: vertices, triangles, indexed meshes, attributes, normals, tangents, transforms, cameras, lighting, procedural geometry, animation, skinning, asset pipelines, and scene authoring.
The repository deliberately has parallel surfaces:
@moritzbrantner/three-d-renderer — concrete Three.js scene/GPU adaptation for downstream applications. It consumes authoritative camera/model matrices and stable scene-node data instead of owning simulation, camera, or transform semantics.three-d-core — renderer-independent mesh geometry, topology, normals, UVs, and tangent-space derivation.three-d-animation — renderer-independent matrices, transforms, animation tracks/clips, skeletal data, and layered post-sampling IK.three-d-playback — frame-rate-independent playback clocks (clamp/loop, forward/reverse), wall-time transition progress, and deterministic cross-fades on top of three-d-animation.three-d-rigged-assets — renderer-independent composition of skeletons, skin influences, animation clips, and joint-local primitive collision proxies, including deterministic bind-pose proxy fitting. It does not own physics simulation or asset-generation provenance.three-d-camera — renderer-independent right-handed view plus perspective and orthographic WebGPU-depth camera matrices.three-d-assets — renderer-independent asset meshes, PBR material factors, encoded texture resources, normal-map bindings, and cross-resource validation.three-d-formats — loss-aware OBJ/glTF decoding adapters that normalize supported file semantics into three-d-assets.three-d-lod — deterministic mesh simplification and source-based LOD derivation using meshopt while preserving the source vertex/attribute buffers, plus screen-space LOD selection by projected pixel error with hysteresis.wgpu example — a narrow renderer-comparison adapter that consumes the Rust mesh and camera models without moving GPU ownership into the core crates.three-d-lod through a canonical position/index mesh JSON envelope without moving asset-tooling ownership into the LOD crate.three-d-animation without moving those semantics into workflow/provenance tooling.three-d-rigged-assets; it transports data and observations without taking over fitting or physics authority.The reusable browser renderer is intentionally Three.js-first. The Rust core crates do not depend on Three.js, WebGL, WebGPU, a windowing stack, or a glTF/OBJ parser; rendering and file-format adapters stay downstream of the renderer-independent models. Applications such as Zoo should consume the renderer package rather than constructing a parallel Three.js/CSS renderer, while still keeping their game-specific scene composition and interaction policy outside 3d-lab.
This authority is deliberately 3D-only. 3d-lab is not the shared home for ordinary flat-map rendering or general 2D vector rasterization. Products such as Maps keep their 2D map render planning/backends authoritative, while 2d-lab may benchmark 2D Rust/WASM techniques without becoming a scene authority.
The GitHub Pages curriculum currently covers:
wgpu renderer responsibilitiesEvery topic combines a concise explanation with an interactive scene and a small data inspector. The Rust side mirrors the durable, renderer-independent concepts rather than wrapping Three.js APIs or asset-file structures.
cargo fmt --all --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-features
Run the native wgpu comparison on a machine with a supported graphics adapter:
cargo run -p three-d-wgpu-example
This is the beginning of the README. Read the rest at the original. Read the full README ↗