THINGS I'M BUILDINGProjects.
Languages, an operating system, a 3D desktop, and a couple of small libraries.
Most of them are experiments, and all of them taught me something.
Rust
An easy programming language with three profiles.
One language, three ways to run it. All three share one intermediate representation, JIR.
- native: no GC, compiled through LLVM and linked with libc, calls C directly
- hosted: runs on a register VM with a garbage collector
- freestanding: no GC, no libc, raw syscalls, tiny static binaries
Rust
A hobby operating system for x86_64 UEFI, written in Rust.
It boots into userspace on an SMP system and runs a preemptive scheduler. Drivers are written from scratch:
- NVMe storage with a FAT16 filesystem
- xHCI USB keyboard input
- E1000 networking with ARP, ICMP and DNS, enough to
ping google.com
- virtio-gpu framebuffer with a primitive desktop window
Rust
A small Rust checker for explicit derivation certificates in first-order Horn theories.
The caller supplies the theory and the goals; the certificate supplies rule applications. Predicate names have no built-in meaning, so cubical type theory and univalence are just theory data on top of a generic kernel.
- Oracle certificates: a 4.07 GB proof becomes a 63,890-byte oracle, checked in 3.5 s
- Addition on unary naturals, transported along
ua (nat ≃ bin), computes 3 + 2 on binary numbers in one checked certificate
- The checking algorithm is modelled and proved sound in Agda
C
An experimental 3D Wayland compositor built on wlroots.
Normal desktop apps become objects in a shared 3D world. Windows can move through depth, fold into cubes, collide with the scene, or be picked up and thrown.
- Custom GLES2 renderer and a public C plugin API
- Lua configuration and a standalone desktop shell
- Plugins such as water windows, magnetic windows and portals
JavaScriptnpm
One physically based light for your whole web page.
Every shadow, highlight and rim light on the page comes from a single light. It can follow the cursor, or be the real sun at the visitor’s location and time of day.
- About 5 kB gzipped, zero dependencies
- Real projection instead of guessed offsets
- Respects
prefers-reduced-motion
npm i @jihoo12/heliograph↗PythonPyPI
Index Rust source code into SQLite and query it back.
Parses Rust with tree-sitter, extracts structs, traits, functions and more, and stores them in a SQLite database.
- Call graphs, complexity reports and public API surface
- Full-text search over names, signatures and docs
- Web dashboard and an MCP server for AI assistants
pip install rust-analyzer-db↗Rust
An experimental cubical dependently typed functional language.
Grows out of Kamo, a small Cartesian cubical kernel, toward a functional surface language that looks ordinary until a program actually works with equality.
- Indexed inductive families with dependent pattern matching
- Path equality (
==), transport and composition in the surface syntax
- A first higher inductive type milestone around
Circle