正在加载视频...
视频加载失败
Not many seem to know this, but opentui lets you render Threejs scenes fully WebGPU accelerated. To the terminal. No special terminal features needed beyond 24bit color. It's all just partial block chars.
308,576 次观看 • 7 个月前 •via X (Twitter)
47 条评论

wait... a second...

I love all the advances in handware and software, and then we swoon over Playstation 1 graphics.

Sad part is that all of it is Javascript.

That's the fun part

Not fun for performance.

It's mostly GPU + zig after setting up the scene via js. It's fun.

Webgpu via JS (threejs, vue, ... who cares). Sad, sad history is being built.

This is not the same 3D that was in your original tweet. The JS wrapper and the logic makes the zig portion inaccessible. JS is just sloppy, it is sad to see good engineers stuck with JS.

clever hack - those braille and block elements in Unicode are basically a 2x4 and 2x3 pixel buffer. combine that with 24-bit color and you've got a legit framebuffer, just really low res. terminal as display driver is wild

Does this require a GPU? I have a similar one using software decode in go, no threejs support tho

Oh nice! Dawn WebGPU doesn't currently come with a CPU renderer backend out of the box afaik. It supports Vulkan though, so it might be possible to hook it up with a mesa software rendering pipeline.

Cool. Different use cases then! Mine was built to let me view 3d models on a vps without a GPU over ssh. This is super cool though. Making me think

I played with a TinyRenderer implementation before I went full webgpu with Threejs. Would be possible to bring in a software renderer, not trivial though.

More and more terminals are adopting the Sixel protocol, which adds full graphics support: Unicode fonts are also improving: This is what terminal Unicode text looks like:

Yeah, I'll support that as well.

Wow... that worked way better than expected!

Fun, right?

Absolutely. I'm ready to make the first person data deletion tool of my dreams.

rendering 3D scenes with block characters is the most unhinged beautiful thing i've seen this week and i once watched someone run doom on a pregnancy test

but like why? the point of the terminal is it isn't a gui

Computers started in the terminal, then we invented graphics that could do the most mind boggling renders (like what @XorDev does), only to round trip to the terminal. Who could've predicted.

omfg incredible

Incredibly cool

@thdxr Fkn pls someone please give me the Lawnmower Man UI that I have wanted since I was 10 years old

yeah but it looks like ass so who even wants that? Fully quality here for reference

You adding this to your terminal @yacineMTB

wtf

Reminds me of when I programmed a skiing game on my TI 994a Basic by redefining the font shapes (as trees) and printing them at the bottom and animating by adding new lines at the bottom…

this is why im not going to sleep tonight.

Now for the real test: Can it run doom ?

is this also technically a game engine? :p ❤️

Next level!Basically telling me my terminal had a GPU this whole time and just never told me

Next up: A Threejs rendered terminal with opentui running inside of it for the full circle. ➰

You know what you have to doom

what in the jazzpunk soundtrack am i hearing

Did anyone know this was all possible in the terminal? I've been a terminal user all my long life, never ever seen this mentioned or hinted at.

building this in rust

Using WebGPU (the most cutting-edge graphics interface) to drive Terminal (the oldest interactive interface) is such a huge contrast that it's practically a geek's dream.

It's fun, many don't seem to get this.

This is wizardry @doodlestein - franken this! 😜

WOW! Can you share a link to this demo? It's so, so cool!

Very cool. Dawn or wgpu (rust)>

Dawn

WHAT

This is incredible stuff man, love watching you push the limits of what can be done in the terminal!

opentui can do that??

I'm getting Duke Nukem vibes from this
