PSX-style 3D scan converter. Prototype / research tool.
lofiscan-banner.mp4
lofi-scan takes hi-res 3D-scanned objects and converts them into PS1-style low-poly, low-res assets. Instead of fixed presets, it runs a per-object adaptive search to find the minimum polygon count and texture resolution that still keeps the object recognizable. Built as a research tool and interactive viewer, currently in active development.
![]() |
![]() |
| PSX shader with dithering and CRT effects | High-detail model: Barong |
- Adaptive decimation: finds the minimum poly count and texture resolution per object, rather than fixed presets
- Real-time PSX shader: vertex snapping, affine UV mapping, ordered dithering, and CRT effects in the viewport
- Texture baking: hi-res to lo-res bake via Blender headless; preserves original UVs through COLLAPSE decimation
- Color 3D print export: .3mf with per-face vertex colors, palette quantization, and optional mesh subdivision
- Turntable video export: records 360° rotation and encodes to mp4 or gif via Python, no ffmpeg install required
- HTML viewer export: self-contained interactive 3D viewer with PSX effects for sharing
Most PSX-style converters apply a fixed poly count or texture size. lofi-scan treats conversion as a search problem: it finds the minimum settings that still preserve recognizability for each specific object, which varies significantly across geometry types. The result log makes it usable as a repeatable research pipeline, not just a one-off aesthetic filter.
- Godot 4.x
- Blender 3.6 or later
- Python 3.10+
pip install Pillow numpy scikit-imagegit clone https://github.com/rendyrayana/lofi-scan
cd lofi-scan
pip install Pillow numpy scikit-imageOpen godot_app/project.godot in Godot 4. Set the Blender path in the app settings if it is not on your PATH.
| Library / Tool | Role |
|---|---|
| Godot 4 | UI, real-time 3D viewer, shader rendering, export orchestration |
| GLSL (PSX shader) | Vertex snapping, affine UV, dithering, CRT post-processing |
| Blender (headless) | Mesh decimation, hi-to-lo texture baking |
| Python + NumPy | Texture processing, 3MF color quantization, video encoding |
Prototype - built as part of ongoing research into perceptual quality thresholds for stylized 3D assets. Not production-ready. Feedback and issues welcome.
- Project page: rendyrayana.my.id/lofi-scan
- More projects: rendyrayana.my.id

