Software

Software written here, running in your browser. Every one of these is Go compiled to WebAssembly, served from a subdomain of this site, and open source. Nothing below needs an account, an install, or a round trip to a server.

Applications

Whole programs, running in the tab. Nothing is uploaded and nothing runs on a server.

Demo
What it is
Source
chaosrack
An analog computer in the browser: 66 dynamical-system models — Lorenz, Rössler, Chua, all twenty Sprott cases, Hénon and the other maps — on an instrument rack with knobs, seven-segment readouts and toggle switches. Live audio as a spectrogram, an XY scope or a delay embedding, and a ripple tank to look through.
github.com/0magnet/chaosrack
shipyard
A Go workstation in a browser tab. The Go toolchain is on the PATH: type go build in the shell, against the same in-memory filesystem the compiler reads, and run what comes out.
github.com/0magnet/shipyard
shipwright
The Go toolchain itself, running in the tab. Edit a program and press build and run: cmd/compile and cmd/link do the work client-side, compiling the standard library from source, and nothing after page load touches the server.
github.com/0magnet/shipwright
netscrape
A web browser written in Go and wasm — tab strip, address bar, history, back and forward — rendering a site served beside it, with the stylesheet inlined and images relayed back as data URIs. The same seam dials the dmsg mesh in skywire's wasm visor.
github.com/0magnet/netscrape
desk
standard Go build
A desktop shell for the browser — windows, a taskbar, an applications menu — where a window is any Go program that renders into a DOM element.
github.com/0magnet/desk
websh
standard Go build
A bash-like shell running entirely in your browser. Real pipes, redirections, globbing, functions, heredocs and arithmetic, over a filesystem persisted to IndexedDB, so your files survive a reload. No server, no container, no emulator.
github.com/0magnet/websh
dict
Dictionary lookup and spell-check in a terminal, with Webster's 1913, WordNet, Wiktionary and Wikipedia. It finds the word you meant when a transposition or a doubled letter means a fuzzy matcher finds nothing at all.
github.com/0magnet/dict
pisano
standard Go build
Designs made by reducing an integer sequence modulo m — the Pisano period made visible — with a shell to drive the renderer.
github.com/0magnet/pisano

Libraries ported to Go and WebAssembly

JavaScript libraries reimplemented in Go, so a Go program in a tab can use them without a JavaScript dependency.

Demo
What it is
Source
xterm-go
A Go port of xterm.js 6.0.0 — the terminal component behind VS Code and Hyper. The full escape-sequence machinery, a WebGL2 renderer, scrollback with reflow, and IME support. The VT core is pure Go and runs headless anywhere.
github.com/0magnet/xterm-go
winbox-go
A Go port of WinBox.js, the HTML5 window manager: drag, eight-direction resize, minimize into a split-screen taskbar, maximize, fullscreen, modals and every lifecycle callback. The stylesheet is embedded in the binary, so there is nothing else to serve.
github.com/0magnet/winbox-go
cosmos-go
A Go port of cosmos.gl 2.6.3, the GPU force-directed graph engine behind Cosmograph and the Skywire network visualizer. The simulation and the drawing both run in shaders, which is how it holds hundreds of thousands of points at frame rate.
github.com/0magnet/cosmos-go
tuiwasm
TinyGo build
Go terminal-UI libraries running in the browser on top of xterm-go — tcell, lipgloss, glamour, go-pretty, pterm and asciigraph — plus 21 terminal animations and a tcell space shooter, each in a window of its own.
github.com/0magnet/tuiwasm

Command-line tools ported to Go

Each of these is a faithful port of a C or Go program, and each demo runs the port itself rather than an approximation of it.

Demo
What it is
Source
plot-go
Line graphs on the command line. The demo follows two counters a browser tab actually has — the gap between animation frames, and how late a zero-millisecond timeout runs — and redraws them live in a terminal.
github.com/0magnet/plot-go
img2txt-go
libcaca's img2txt in pure Go, with no cgo and no Imlib2: images to colored ASCII and ANSI art, in every text format libcaca supports. Drop in a picture, pick a width and a dither; the image never leaves the tab.
github.com/0magnet/img2txt-go
ansifilter-go
A Go port of ansifilter 2.23: text with ANSI terminal escape codes converted to HTML, LaTeX, RTF, SVG, Pango markup or BBCode. The demo shows the same input in a real terminal and in a real browser at once.
github.com/0magnet/ansifilter-go
calvin
Text converted to the Calvin S box-drawing font. Type in the box and watch the letters turn.
github.com/0magnet/calvin

Interface libraries written here

Not ports of anything — original libraries, each with a demo that is the library doing its one job.

Demo
What it is
Source
rack-go
Panel modules laid out the way a physical equipment rack does: side by side, each a whole number of slots wide, wrapping into rows and reflowing when one is taken out. Drag a module by its header to move it, or switch one away and watch the rest close up.
github.com/0magnet/rack-go

Straight to one thing

Some of these take a parameter, so a link can open on a particular demo, pipeline or word instead of the front of the app.

tuiwasm — 43 terminal-UI programs, one per link

Terminal animations and TUI library demos, each drawn into a real terminal emulator in the page. The animations come from termanim; the rest exercise tcell, lipgloss, glamour, go-pretty and asciigraph.

aquarium · aurora · boids · bonsai · bounce · boxes · charts · clock · colors · cube · donut · fire · fireworks · flow · frost · julia · langton · lavalamp · life · lightning · matrix · maze · metaballs · moire · parrot · pendulum · physarum · pipes · plasma · proxima · proxima2 · rain · reaction · ripple · sand · snow · starfield · styles · tables · tunnel · unicode · widgets · wolfram

plot-go — the same counters through different pipelines

The processing pipeline comes from the query, exactly as the command line takes it. Each of these plots the same two live counters a different way.

avg:5 · roc:5 · avg:5|roc:5 · cma

dict — a word, looked up on arrival

The terminal runs whatever the link asks for, so each of these opens on a finished lookup rather than a prompt. One of the words is misspelled on purpose — that is the point of it.

serendipity · rain · recieve · aluminium

Back to the store