Remix.run Logo
javcasas 4 hours ago

> For each frame our pipeline constructs a scene graph with React then

> -> layouts elements

> -> rasterizes them to a 2d screen

> -> diffs that against the previous screen

> -> finally uses the diff to generate ANSI sequences to draw

Yup. Overengineering.

AceJohnny2 3 hours ago | parent | next [-]

This is a decades-old design pattern when CPU >> IO. Emacs has been doing just that since the 80s, when people were complaining about "Eight Megs And Constantly Swapping". See "redisplay" [1]

This minimizes screen flash. You can't rely on terminals doing double-buffering.

[1] https://github.com/emacs-mirror/emacs/blob/c29071587c64efb30... or a more user-friendly overview, Daniel Colascione's seminal "Buttery Smooth Emacs", snapshotted at e.g. https://gist.github.com/ghosty141/c93f21d6cd476417d4a9814eb7...

strix_varius 9 minutes ago | parent [-]

lol what? There are definitely ways to make non flashing terminal UIs without this total insanity.

Melatonic 4 hours ago | parent | prev | next [-]

It's like the Citrix of AI :-D

stego-tech an hour ago | parent [-]

OOF. As a former Citrix admin, I felt that burn in my bones.

An upvote well earned.

Aperocky 3 hours ago | parent | prev | next [-]

It's product bloat.

It's not recognizing that they are just one building block that should do one thing well, like tmux.

You don't need a computer display on your fridge for the same reason, but Anthropic think you do. You should see virtual ice getting created and they should correspond to the actual ice behind the door - think of how amazing that is!

And it's not even completely a bad idea. make it claude-code-react-beauty of some way to take it off, it would be far more palatable.

mapBasketWand 2 hours ago | parent [-]

I love the idea of installing high resolution cameras in the fridge to monitor the ice maker to feed into a vision model that renders digital ice to the exact position of the real ice on the fridge’s giant screen

Aperocky 2 hours ago | parent | next [-]

See this is the kind of things I hope I'd be doing when I'm retired, but not when I'm shopping.

throwway120385 2 hours ago | parent | prev [-]

Or you could... open the door and look inside.

megous an hour ago | parent | prev | next [-]

React part maybe. The rest is what any TUI that's using ncurses would do. :)

It really bothers me that most of the TUI harnesses are using 100% CPU quite a lot just printing stuff to terminal. Seems ridiculous.

I guess it comes from syntax highlighting/formatting, which is probably not done incrementally, but over the entire so far displayed block of output, recomputed from the beginning for each new streamed in character. Can't imagine anything else causing the rendering to gradually grind to halt when eg. thinking block is open in opnecode and updates get palpably slow as it grows.

Terminal output itself is fast and consumes almost nothing. You can have 60fps terminal apps that update content every frame and that consume almost no CPU time.

Animats 4 hours ago | parent | prev | next [-]

What is "frame" in this context? Video frame, or something else?

javcasas 4 hours ago | parent | next [-]

> -> rasterizes them to a 2d screen

> We have a ~16ms frame budget so we have roughly ~5ms to go from the React scene graph to ANSI written.

It looks like video frame, full framebuffer, generated and parsed at 60fps. It surprises me they haven't introduced GPU shaders, 16x oversampling and raytracing. Maybe for next release.

layer8 4 hours ago | parent | prev [-]

The contents of the terminal screen at any given point in time.

abletonlive 3 hours ago | parent | prev [-]

Care to explain how you'd engineer it instead?

hungryhobbit 2 hours ago | parent | next [-]

Why would anyone ever do that? Make Claude do it!

mudkipdev 18 minutes ago | parent | prev | next [-]

A reminder that anthropic has great rust/go sdks that they could have written their own tui in.

stevenhuang an hour ago | parent | prev [-]

Not use react native for a cli app for one, lol.

Ratatouille rust cli lib will be a good start.