Uxn is a personal computing stack created by 100 Rabbits and developed by an active community.
In 2021 I discovered Uxn. The challenge of operating in such a constrained environment fascinated me and many of my earliest projects (regular expressions, higher precision math) involved pushing the limits of what was possible. Beyond that, I continue to be inspired by the vision of a simple, durable computing environment that can be bootstrapped from almost nothing.
I gave a lightning talk at Roguelike Celebration 2024 where I discussed Uxn and other intentionally small computing environments in the context of roguelike game design. The slides for the talk were produced using a Uxn ROM (Adelie) and rendered during the talk using Uxn11.
I've contributed to uxn11 and uxncli and also implemented many of my own emulators.
Emulator for the Linux framebuffer. Developed mainly for (and on) a 32-bit netbook with 1 GB of RAM running Alpine Linux.
Varvara emulator for use in TTY terminals. Motivated by a desire to run Femto and other interactive terminal programs that want to read keystrokes as they become available.
Varvara emulator for classic Macintosh computers. Working title and no public source yet, but the initial goal is to be able to run Uxn ROMs on any Macintosh that can run System 7. Currently we have console programs working.
Varvara emulator for the AgonLight2. Most devices work, but still working on the screen.
Varvara implementation for Scheme.
Simple nano-esque text editor. Runs in the terminal using uxntty or any other console editor if the terminal is put into raw mode first.
Klondike solitaire with bears!
Music player with interface reminiscent of early iPods. I mainly worked on the subprocess support but also helped a bit with some of the data processing.
Nanochat client with an intentionally lofi interface. The goal was to produce a chat client small enough to run on a Nintendo 3DS.
Terminal emulator written in Uxntal, intended to be run in uxn11. Somewhere between a generic ANSI terminal and a VT100.
Uxn multiplexer! Runs one virtual screen in which many smaller ROMs can run. Introduces the muxn specification for smaller emulators/environments.
Based on this idea by chloe I implemented a multi-purpose contact card. Includes mazes, calendars, dungeons and dragons, and contact information.
Diceware password generator. Useful when you have physical dice but don't want to look up your dice rolls against a word list.
Very work-in-progress coding environment and interactive debugger. Intended to feel a bit like a Zachtronics programming game.
Streaming compressor/decompressor for the ULZ compression format.
Implements 32-bit unsigned integers using 8-bit and 16-bit integers.
Implements 32-bit decimal fixed point values. The denominator is 1000, allowing values between ± 2 million to be represented with up to 3 decimal places. Used by Nebu, a simple spreadsheet ROM.
Implements strict regular expressions (without back references or other non-regular features). Used by Femto.
Implements 16-bit fixed point values. The representation is 8.8 (8-bits for the whole number, 8-bits for the fraction), which makes it suitable for angles and other small-ish values.
Argument parsing library for Uxntal, which abstracts over the console vector types.
Arena-based memory allocator.
Emacs major-mode for writing Uxntal.
Manual page describing the Uxntal system and instructions.
Python interactive REPL powering uxnbot in the #uxn IRC channel.
last updated: Sun Jul 26 03:32:59 PM EDT 2026