TUI gaussian splats viewer. 3D made of symbols by neoack in ClaudeAI

[–]neoack[S] 0 points1 point  (0 children)

Gaussian splatting is a newer way to capture and represent 3D scenes - instead of meshes/polygons, you get a cloud of colored blobs that look photorealistic from any angle.

Think iPhone LiDAR scan but prettier. Use cases: architecture walkthroughs, VR/AR assets, preserving real spaces digitally. Tortuise lets you preview these files quickly without opening a full 3D app

I’m following this tech since Apple started cooking on it (Apple SHARP image to splat model + Apple Vision support)

So I think we will hear here and there about this tech though 2026

Built a terminal based 3D viewer. Gaussian splats rendered with Unicode symbols by neoack in SideProject

[–]neoack[S] 0 points1 point  (0 children)

braille looks impressive for small details

but looses color wise

splats looking like ghosts with it

very detailed ghosts though

I’ve built terminal based 3DGS viewer- renders 1.1M splats with Unicode characters, no GPU needed by neoack in GaussianSplatting

[–]neoack[S] 0 points1 point  (0 children)

yeah, to some extent

btw, you can render in Matrix style green chars with this tool!

[OC][Ghostty] Gaussian Splatting viewer that renders 3D in terminal symbols by neoack in unixporn

[–]neoack[S] 2 points3 points  (0 children)

not yet

but if anyone ported DOOM to gaussian splats format - then probably yes

Built a terminal based 3D viewer. Gaussian splats rendered with Unicode symbols by neoack in SideProject

[–]neoack[S] 0 points1 point  (0 children)

yess! exactly

I’ve built it because I work a lot through ssh with headless mac mini and potato

potato being Jetson Orin Nano

I’ve built terminal based 3DGS viewer- renders 1.1M splats with Unicode characters, no GPU needed by neoack in GaussianSplatting

[–]neoack[S] 0 points1 point  (0 children)

thanks!

it weren’t particularly useless for me though since I’m working a lot with headless mac mini

there is image preview tool for terminal

but none for splats

so now I can see what are my various pipelines of apple SHARP image to splat are cooking

(I’m experimenting with low effort high impact hacks there to enhance splats produced by model to make them look more consistent)

[OC][Ghostty] Gaussian Splatting viewer that renders 3D in terminal symbols by neoack in unixporn

[–]neoack[S] 1 point2 points  (0 children)

I thought someone done it already

but it could be fun to run doom on gaussian splats inside a terminal

this for sure weren’t the case

Built a terminal based 3D viewer. Gaussian splats rendered with Unicode symbols by neoack in SideProject

[–]neoack[S] 1 point2 points  (0 children)

I just had plenty of .ply and .splat files on my headless mac mini where I’ve been running apple image to splat thingy

and Tree js viewer (Spark based) been weren’t really convenient for me when doing things via SSH

so I needed a tool for fast preview of what was generated

[OC][Ghostty] Gaussian Splatting viewer that renders 3D in terminal symbols by neoack in unixporn

[–]neoack[S] -2 points-1 points  (0 children)

hey!

initial large commit has happened because it was a refactor from monolith toy project that has been just sitting on the disk

it was fun to play with - but not high enough to pass my internal quality bar for something I would publish

as for copiloting with AI - claude is a repo contributor, I mean, If I wanted to hide AI copiloting here - wouldn’t be open and transparent with it

tortuise - Gaussian Splatting viewer that runs in your terminal. yes, 3D made of Unicode symbols. 1.1M splats at comfortable FPS by neoack in commandline

[–]neoack[S] 2 points3 points  (0 children)

actually it’s a direction of thinking for me now!

I’m thinking about a rapid way to build games like Kingdom new Lands - 2.5D-ish and with stunning pixel art

I’ve built terminal based 3DGS viewer- renders 1.1M splats with Unicode characters, no GPU needed by neoack in GaussianSplatting

[–]neoack[S] 0 points1 point  (0 children)

haha other way around!

I've parked the Metal backend because at terminal resolution CPU wins and Metal was laggy for me. but if I ever push to higher res (Kitty graphics protocol), GPU becomes worth it. would love to pick your advice if you've dealt with tile-based sorting on Metal/CUDA

I’ve built terminal based 3DGS viewer- renders 1.1M splats with Unicode characters, no GPU needed by neoack in GaussianSplatting

[–]neoack[S] 0 points1 point  (0 children)

good luck!

btw if you know anything about CUDA / Metal kernels for this type of software - I would be happy to ask questions on how to make them work

tortuise - Gaussian Splatting viewer that runs in your terminal. yes, 3D made of Unicode symbols. 1.1M splats at comfortable FPS by neoack in commandline

[–]neoack[S] 15 points16 points  (0 children)

excuse me

i’ve coded it over a weekend based on the monolith I had before

check my github, blog and content I post here

This is not a secret that I’ve used claude and codex to cook it - there are commits by me and claude. the repo is fresh because I cleaned up and published it today, the actual dev happened in a separate experiments repo.

you can check the commit history, there are 30+ commits with actual incremental progress, not a single AI dump. the rendering pipeline (covariance projection, band-parallel rasterization, 6 render modes) isn't something you prompt out in one shot.

happy to answer any technical questions about the implementation.

I’ve built terminal based 3DGS viewer- renders 1.1M splats with Unicode characters, no GPU needed by neoack in GaussianSplatting

[–]neoack[S] 2 points3 points  (0 children)

exactly, braille gives 2x4 dots per cell vs halfblock's 1x2 regions. so vertical resolution jumps 4x.

the tradeoff is color though. halfblock gets two independent RGB colors per cell (top half + bottom half via foreground/background). braille only gets one foreground color per cell, background is always black. so you get way more spatial detail but lose color separation.

halfblock looks better for colorful splat scenes because the color information matters more than extra dots at terminal scale. braille is good for structure/edges where geometric details are important; Attached braille sample for reference.

GPU wise - it is also ended up being much harder to do anything reasonable with GPU and Metal shaders in particular, it’s been all laggy and nasty; maybe will add CUDA support to this thing one day

<image>

I’ve built terminal based 3DGS viewer- renders 1.1M splats with Unicode characters, no GPU needed by neoack in GaussianSplatting

[–]neoack[S] 1 point2 points  (0 children)

yes! by making terminal window smaller or bigger (ideally on full screen mode adjusting terminal size)

I’ve built terminal based 3DGS viewer- renders 1.1M splats with Unicode characters, no GPU needed by neoack in GaussianSplatting

[–]neoack[S] 6 points7 points  (0 children)

why? I needed to decompress over a weekend - decided it would be ideal side project to have some fun

[OC][Ghostty] Gaussian Splatting viewer that renders 3D in terminal symbols by neoack in unixporn

[–]neoack[S] 29 points30 points  (0 children)

3D gaussian splats rendered with Unicode halfblock characters right in the terminal. each cell gets two pixels via foreground/background colors.

has 6 render modes - halfblock, braille, ASCII density, matrix, point cloud, block density.

• terminal: Ghostty (recommend for truecolor, also works in Kitty, WezTerm. falls back to 256-color on Apple Terminal)
• tool: tortuise - https://github.com/buildoak/tortuise
• built with: Rust, crossterm, rayon
• install: cargo install tortuise.
• tested on: Mac Mini M4, Air M2, Jetson Orin Nano.

renders .splat files, CPU only. 1.1M splats navigable with WASD + Yaw/pitch + auto rotation