Everything on GitHub, roughly
A one-line-each map of what’s in github.com/sogh, so I stop having to
remember. Only repos with real work in them (a dozen-plus commits, give or
take); the one-commit placeholders and forks are left out. Grouped by what
they’re for, newest-ish first.
Music
fretboard-explorer— the browser music theory toolbox: fretboard, circle of fifths, progressions, scales, a practice sequencer, plus piano and trumpet pages. No build step. See harmonic-atlas.fretboard-explorer-ios— the SwiftUI port. Most of the recent work is the circle-of-fifths “maps”, picking one voicing per chord instead of stacking them.harmonia— instrument-agnostic theory primitives in Rust: pitch classes, intervals, chords, keys, Roman numerals. The layer under the fretboard, not tied to one.song-map— songs as graphs: sections are nodes, transitions are edges. Scrapes tabs for a song list and turns them into maps for the band.dawesome— a C++ DAW for songwriters, not producers. Sections instead of a timeline, roles (voice, rhythm, bass) instead of numbered tracks.resonance— “SpaceChem but music.” A Godot/C# prototype where bots on a grid trigger notes; so far it plays a perfect fifth and proves the clock.
Simulations
nature-sim— the big one (330-odd commits). A PNW meadow in Bevy with a real sun and moon, weather, seasons, and a 320×200 pixel renderer that does time of day by palette cycling. See time-of-day-by-cycling-the-palette.promenade— aristocratic social drama over generations in Rust: lineage, status, scandal, blackmail. Drama is meant to fall out of agents chasing status.faction-sim— the medieval version of the same itch: hundreds of agents, competing factions, output meant for a director to pick the good bits.village-sim— utility-AI villagers in Bevy ECS with needs, memory and fog of war.dinner-party-sim— a TypeScript “terrarium for personalities”: arrange guest lists and seating, then watch.narrative-engine— procedural text for games without a neural net: stochastic grammars plus Markov phrasing, driven by simulation events.
Games and game tools
lost-your-marbles— marble rolling through generated dungeons, with a camera that follows the solution path. See a-marble-game-that-generates-its-own-levels.level-generator— the generator behind it: nethack rooms, marble channels with slopes, and wave function collapse mazes.rust-marble-party— marble physics with a hand-rolled SDF solver instead of a physics crate. A steel ball in a spiral tube.SpriteForge— seed-based procedural sprites, keeping the blueprint separate from the pixels. Has an egui editor.rust-tactics-engineandtactics-web— two goes at a Final Fantasy Tactics–style game, one in Bevy and one in React/PixiJS with multiplayer.voxel-artist— procedural voxel shapes, CPU-raycast to PNG.
Everything else
glance-png-server— PNG panels for the pixel display in the kitchen: weather, wind, tides, calendar, scores. See ten-slots-is-not-ten-panels and the-tide-is-only-highs-and-lows.garden— this.soghblog— the old blog this replaced, with a few side apps bolted on. See why-a-garden-not-a-blog.furple— Python game experiments from 2020–21.CarlinIndex— a 2013 JavaScript project. I don’t remember much about it.
linked from
- Voxel art without a mesh: a CPU raycaster that walks the gridimport multi from './multi.png'; import hills from './hills.png'; import carved from './carved.png'; import resolution from './resolution.pn…