Something went wrong. Try again.
Monorepo for Aesthetic.Computer aesthetic.computer
Something went wrong. Try again.
Markdown
AC Native OS — Common Lisp Edition Progress (2026.03.23) #
Overview #
A bare-metal Common Lisp OS runtime for AC Native, using SBCL + CFFI. Boots directly to notepat (musical keyboard instrument) on real ThinkPad hardware via UEFI.
Architecture #
- Runtime: SBCL 2.6.2 compiled to standalone binary (~12MB)
- Graphics: DRM/KMS framebuffer with pixel scaling (targets ~200px wide)
- Audio: ALSA PCM with 32-voice polyphonic synth (48kHz stereo S16LE)
- Input: evdev keyboard polling (full QWERTY)
- Build: Docker reproducible build (Fedora 43 + GCC 15 + Linux 6.19.9)
- Boot: UEFI → Linux kernel with embedded initramfs → SBCL binary as /init child
What Works (2026-03-22) #
Core Runtime #
Graphics #
Notepat Instrument #
Build System #
What's Next #
Short Term #
Medium Term #
Long Term #
File Map #
| File | Purpose |
|---|---|
main.lisp |
Entry point, notepat instrument loop |
packages.lisp |
All package/export definitions |
drm-display.lisp |
DRM/KMS init, dumb buffers, page flip, present |
drm-constants.lisp |
DRM ioctl numbers and struct defs |
framebuffer.lisp |
Pixel buffer alloc, clear, plot, blend, scaled copy |
graph.lisp |
Immediate-mode 2D: wipe, ink, plot, line, box, circle |
color.lisp |
ARGB32 color struct, packing, alpha blend |
font-data.lisp |
6x10 BDF bitmap font (95 ASCII chars) |
font.lisp |
Font rendering and measurement |
audio.lisp |
ALSA init, mixer unmute, voice management, audio thread |
audio-synth.lisp |
Oscillators (sine/square/tri/saw/noise), voice struct |
alsa-bindings.lisp |
CFFI bindings for libasound |
input.lisp |
evdev device scanning, event polling |
input-keycodes.lisp |
Linux keycode constants (full QWERTY) |
syscalls.lisp |
CFFI wrappers for Linux syscalls |
util.lisp |
Logging, monotonic clock, frame sync |
config.lisp |
USB config.json reader |
ac-native.asd |
ASDF system definition |
build.lisp |
SBCL save-lisp-and-die build script |
Hardware Tested #
- ThinkPad X1 Nano Gen 2 (Intel i915)
- ThinkPad Yoga 11e Gen 5 (Intel i915)