These screenshots are produced by the static renderer that transforms escape codes into a memory buffer, and then a memory buffer into pixels drawn on a png image. The static renderer is useful to set up tests and compare results visually during development. The real-time raylib/opengl renderer already supports ANSI codes and part of the new set of codes that enable this fine control over terminal rendering.
I know there is the Kitty term, but I had the feeling that it does too much, and I don't really want the terminal to stop being primarily about rendering text really fast. Different goals, different terms.

#golang #foss #subterm #vt100 #terminal #subterminal

Here's Subterm running a few little tools. It seems to be rendering properly most of VT100 / ANSI codes. The new ones I'm introducing use one single escape code with one embeded JSON object. Work will resume tomorrow improving font selection, proportional font metrics, colour themes, and other niceties. I think this little thing may save me the hassle of developing too many web applications.

#golang #foss #subterm #vt100 #terminal #subterminal

Now I'm driving the subterminal sending escape codes from python. Subterminal is written in Go, using Raylib to handle graphics and textures in GPU. Using fogleman/gg for high quality vector rendering, and Freetype for proportional fonts. BDF fonts are my own pet peeve.

Look, no HTML!!!

#golang #foss #subterm #subterminal

Not much to show yet. But here's what I think is interesting: this is an early prototype of Subterminal, with a tiny little demo that uses the Subterminal api to simulate a character display, using BDF fonts, and GL acceleration via Raylib. The little demo app is called Goodnight Commander. Subterminal is still unable to parse escape characters properly so you still can't run real terminal apps on it, but that's something I've been working on. The first part was about implementing the BDF and Sixel part, so that a CLI / TUI can upload glyphs, fonts, and sprites to the terminal. When this is all done, you should be able to develop rich TUI apps, even little games by sending the right escape codes to Subterminal, from any language.

#golang #foss #terminal #retrocomputing #midnightcomander #goodnightcommander #raylib #subterm #subterminal

This is not real-time rendering yet, I'm modeling the api and rendering to pixmaps, generating png screenshots. But I like how it's shaping up.

I couldn't in honesty reuse the venerable 'lynx' name to associate it with my experiments, so I renamed them to 'sphynx'. sphynx is now a code sample that will eventually serve as a demo for the subterminal.

#golang #foss #subterm #vt100 #terminal #subterminal