A software rasterizer written in Rust that renders 3D models as ASCII art directly in your terminal.
- Perspective projection and triangle rasterization
- Turntable animation mode with configurable speed
- Built-in benchmark mode for performance profiling
- Multi-format model loading:
.obj,.gltf,.glb,.stl
cargo run --release -- [OPTIONS] <FILE_PATH> [COMMAND]For more information run:
cargo run --release -- -h| Mode | Description | Example |
|---|---|---|
interactive |
Control the camera manually (default) | rview model.obj interactive |
turntable |
Automatically rotate the model | rview model.obj turntable --speed 2.0 |
benchmark |
Run a fixed animation and exit | rview model.obj --bench |
| Control | Action |
|---|---|
| Mouse drag | Rotate camera |
| Scroll up/down | Zoom in/out |
q |
Quit |
| Format | Extension |
|---|---|
| Wavefront OBJ | .obj |
| GL Transmission Format | .gltf, .glb |
| Stereolithography | .stl |
rust: Languagecrossterm: cross-platform terminal manipulationglam: SIMD-accelerated linear algebratobj: fast.objfile parsinggltf:.gltfand.glbfile parsingstl_io:.stlfile parsingclap: command-line argument parsinganyhow: ergonomic error handlingrayon: data-parallel processing
This project was developed with the assistance of Claude Sonnet 4.6 (Anthropic) for code review, optimization, and design decisions. All code was written, tested, and validated by the author.
- Suzanne: Blender
- Modified Utah Teapot (2025 revision by Cem Yuksel): University of Utah. A historic 3D model developed at the University of Utah, used in accordance with their terms of use.
This project is licensed under the GNU GPLv3 License - see the COPYING.md file for details