§ about

I'm Coranna, a quietly intense thinker and crafter from the Seattle, Washington area.

I primarily work with code, a selection of which follows below. I also write at Allopoeia, and I sometimes make voices (including imitation of… not-voices), music (maybe), and sounds.

I'm currently looking for remote (or very local) programming work and small (low or no budget) collaborative projects. See my resumé for more details.

My pronouns are ze/zir/zirs, but other neutral pronouns (e.g., they/them/theirs) are acceptable. I encourage the use of explicitly-singular neutral pronouns because, despite how familiar singular they might be, it still has plenty of ambiguities. In other languages, any humanizing neutral pronouns are acceptable (i.e., not “it”).

§ code

» Pickle

A static site generator. It's more versatile (and usable) than, say, Jekyll or Hugo (in my opinion, of course), but it has a while to go before the kinks are hammered out.

» precore

An extension of Premake 4.4. It facilitates build setup reuse, making the already-pleasant Premake even more so.

» Quanta

A highly adaptable toolset for tracking. Its primary facility is time-tracking, with a text format at its foundation specialized for describing the physical realm. Though Quanta is currently passive (with some validation), it will soon expand into analytics (e.g., craft efficiency, resource consumption, nutrition).

» togo

A C++ data-oriented super-library. It began as a game engine, but I found its design too appealing to leave it all bound up in a high-dependency library. As a result, togo is now composed of multiple components (libraries and tools). The game library is nascent, but the core library is a fully capable (very stdlib-minimal) base library for anything else.

¶ tools

  • igen: libclang-based interface generator for C++.
  • include_sort: inclusion sorter for C and C++.

¶ reverse-engineering

  • brinktools: ancient code and docs for BRINK's SDMD2 and SDPK2 formats.

¶ primordium

Slow-growing projects trapped in headspace. (You might be able to goad me into finally tackling these.)

  • low-dependency, standalone interface generator for C++: because multiple declarations are sooooo annoying; see the imperfect kludge that is igen.
  • bitbork: a tool for succinctly & quickly designing and reverse-engineering data formats; programmable translation of tedious/non-trivial formulations to code (e.g., pointing into a blob containing memory-ready data).
  • a programming language with attention to data and reasonable concurrency: a dreadful potion of C, C++ TMP, Go, Lua, and a dash of Erlang; both compiled and JIT/VM-able (from its own bytecode), complete utilization at build time (metaprogrammable in itself).
  • reverse-engineering Prince of Qin: data formats, tools, core (and eventually complete emulation).
  • reverse-engineering Age of Empires I & II: data formats, maybe more.

¶ graveyard

These are bad projects from my early days with C++.

  • All the Maths‽: an over-engineered mathematics library.
  • Beard: a terminal UI.
  • Cacophony: a serialization library.
  • ceformat: an atrocious constexpr printf-style format parsing and output library.
  • duct++: a general-purpose library.
  • Hord & Onsang: the over-protective, over-engineered precursor to Quanta.
  • Trait Wrangler: a tiny trait testing library.

§ art & games

» Onomo

A slow, dark platformer concept created over a 48-hour period for Ludum Dare 30. I neglected mechanics and made something that is only compelling in aesthetic. The code is available under the CC BY-NC-ND 3.0 license.

» Prisma

A minimalistic color-based twitch puzzler created over a 72-hour period for Ludum Dare 26. The levels are poor, the audio is terrible, and the “puzzles” are mostly based on player speed. The code is available under the CC BY-NC-ND 3.0 license.

» sounds for contemplating the universe

A short aural journey to accompany thoughts of life beyond your star system. Created with SunVox for Fermi Paradox Jam in 2016. CC BY-NC 4.0.

» Kaleidograph (stills)

An interactive generative art program which creates snowflakey kaleidographic patterns. Created with JavaScript and p5.js in December 2014. (A selection of still images; code is not publicly available.)

§ misc