Bunny Viewer is a user-friendly STL/PLY file viewer, written in Rust as a side-project with a huge help from ChatGPT + Codex. It targets developers who want a fast, native mesh viewer on macOS and iPadOS.
- Loads
.plyand.stltriangular meshes. - GPU rendering with optional bicubic upsampling.
- macOS app + iPad app (Xcode project).
- CLI utilities for decoding and inspection.
From the repo root:
cargo install --path appThis installs:
mesh-viewer(GUI viewer)mesh-decode(CLI mesh decoder)
mesh-viewer --file ./path/to/mesh.plyIf no file is passed, the app loads a bundled sample mesh from:
~/Library/Application Support/Mesh Viewer/meshes/sample.ply
--file <path> Mesh file path (.ply/.stl)
--camera <preset> front|side|top|iso (aliases: right,isometric)
--render-scale <f32> Render scale (1.0-2.0)
--log-level <filter> tracing log filter
- Left-drag: orbit
- Right-drag: pan
- Scroll: dolly (zoom)
- WASD: move target
- Arrow keys: orbit (yaw/pitch)
- Checkbox: "No culling" toggles backface culling
- One-finger drag: orbit
- Two-finger drag: pan
- Pinch: dolly (zoom)
Open ios/MeshViewer/MeshViewer.xcodeproj in Xcode and build the MeshViewer target.
- macOS: uses the
--render-scaleCLI flag (orMESH_RENDER_SCALEenv var if set). - iPadOS: respects
MESH_RENDER_SCALEwhen culling is enabled, and forces scale to1.0when "No culling" is enabled to avoid bicubic upsampling.
cargo test --allLicensed under either of:
- Apache License, Version 2.0 (
LICENSE-APACHE) - MIT License (
LICENSE-MIT)