Skip to content
ethan-hgwrPublic

About

Render 3D models as ASCII art in your terminal, with real-time camera rotation, zoom, and animation. Built with Rust 🦀

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

95 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rview

Suzanne demo Utah teapot demo

A software rasterizer written in Rust that renders 3D models as ASCII art directly in your terminal.

Features

  • 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

Usage

cargo run --release -- [OPTIONS] <FILE_PATH> [COMMAND]

For more information run:

cargo run --release -- -h

Modes

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

Controls (interactive mode)

Control Action
Mouse drag Rotate camera
Scroll up/down Zoom in/out
q Quit

Supported Formats

Format Extension
Wavefront OBJ .obj
GL Transmission Format .gltf, .glb
Stereolithography .stl

Build With

  • rust: Language
  • crossterm: cross-platform terminal manipulation
  • glam: SIMD-accelerated linear algebra
  • tobj: fast .obj file parsing
  • gltf: .gltf and .glb file parsing
  • stl_io: .stl file parsing
  • clap: command-line argument parsing
  • anyhow: ergonomic error handling
  • rayon: data-parallel processing

AI Disclosure

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.

Assets

  • 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.

License

This project is licensed under the GNU GPLv3 License - see the COPYING.md file for details

About

Render 3D models as ASCII art in your terminal, with real-time camera rotation, zoom, and animation. Built with Rust 🦀

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages