artemtsitronov/ravioli

An almost-zero dependencies ASCII 3D OBJ viewer. Animations, and RGB-colored shading is supported.

Rust

1

6 commits

updated Sep 17, 2026

See the code

See what people are saying (2)

SourceMessageScoreDate

Ravioli is a 3D ASCII art preview that loads an .OBJ and spins it in your terminal (r/commandline)

Hellow people! Sooo, this is a simple CLI tool to load OBJ files and preview them as ASCII art in the terminal with a nice animation. It's perfect for showcases, and... showcases. It has a textured(ASCII) mode and a solid(block glyph) one, and in both of those to add better lightning, it dims the…

9

Sep 17, 2026

Ravioli is a simple CLI tool to preview 3D ASCII (r/rust)

Soo, Ravioli came out, and it's an easy to use cli tool to preview 3d files in ascii format. It's perfect for rice showcases, and... probably something else. I hope. It only has two dependencies: clap for cli, and terminal-size to determine the window size. As lightning, it both uses ASCII…

27

Sep 17, 2026

README

ravioli

An ASCII 3D OBJ viewer. Animations, and RGB-colored shading is supported. The only external dependencies are clap for CLI parsing and terminal_size for live terminal sizing.

Features

  • OBJ mesh loading (vertices + n-gon faces, fan-triangulated)
  • Perspective projection with a software rasterizer (barycentric fill + z-buffer)
  • Two-light (key + fill) flat shading with true 24-bit RGB color
  • Backface culling
  • Solid or textured (ASCII ramp) render modes
  • Live terminal-resize support
  • Falls back to a built-in demo cube if no file is given

Install

cargo install ravioli

Usage

ravioli                              # spin the built-in demo cube
ravioli -O model.obj                 # spin your own mesh
ravioli -O model.obj -S 2.0          # faster rotation
ravioli -O model.obj -C 3.0          # camera further back
ravioli -O model.obj -M solid        # solid block glyphs
ravioli -O model.obj -R false        # disable live terminal-resize
FlagLong formDefaultDescription
-O--obj(built-in cube)Path to an .obj file
-S--speed1.0Rotation speed multiplier
-C--camera-distance1.5Distance of the camera from the object
-M--modetexturedsolid or textured
-R--resizetrueRe-detect terminal size live while running

Contributors

artemtsitronov/ravioli

An almost-zero dependencies ASCII 3D OBJ viewer. Animations, and RGB-colored shading is supported.

Rust

1

6 commits

updated Sep 17, 2026

See the code

See what people are saying (2)

SourceMessageScoreDate

Ravioli is a 3D ASCII art preview that loads an .OBJ and spins it in your terminal (r/commandline)

Hellow people! Sooo, this is a simple CLI tool to load OBJ files and preview them as ASCII art in the terminal with a nice animation. It's perfect for showcases, and... showcases. It has a textured(ASCII) mode and a solid(block glyph) one, and in both of those to add better lightning, it dims the…

9

Sep 17, 2026

Ravioli is a simple CLI tool to preview 3D ASCII (r/rust)

Soo, Ravioli came out, and it's an easy to use cli tool to preview 3d files in ascii format. It's perfect for rice showcases, and... probably something else. I hope. It only has two dependencies: clap for cli, and terminal-size to determine the window size. As lightning, it both uses ASCII…

27

Sep 17, 2026

README

ravioli

An ASCII 3D OBJ viewer. Animations, and RGB-colored shading is supported. The only external dependencies are clap for CLI parsing and terminal_size for live terminal sizing.

Features

  • OBJ mesh loading (vertices + n-gon faces, fan-triangulated)
  • Perspective projection with a software rasterizer (barycentric fill + z-buffer)
  • Two-light (key + fill) flat shading with true 24-bit RGB color
  • Backface culling
  • Solid or textured (ASCII ramp) render modes
  • Live terminal-resize support
  • Falls back to a built-in demo cube if no file is given

Install

cargo install ravioli

Usage

ravioli                              # spin the built-in demo cube
ravioli -O model.obj                 # spin your own mesh
ravioli -O model.obj -S 2.0          # faster rotation
ravioli -O model.obj -C 3.0          # camera further back
ravioli -O model.obj -M solid        # solid block glyphs
ravioli -O model.obj -R false        # disable live terminal-resize
FlagLong formDefaultDescription
-O--obj(built-in cube)Path to an .obj file
-S--speed1.0Rotation speed multiplier
-C--camera-distance1.5Distance of the camera from the object
-M--modetexturedsolid or textured
-R--resizetrueRe-detect terminal size live while running

Contributors

Languages

Rust

100.0%