Projects

We are known to do some computer-touching from time to time, and occasionaally this ends up being interesting to other folks.

Morgana

A small, jsx-inspired component rendering library with with more Rust-like macro syntax. It's used to render this site!

morx! {
    PageLayout title="Code sample" {
        h1="The syntax is designed to be terse but unambiguous"

        p="With an easy shorthand for elements with only text-content"

        p={r#"But Rust expressions are allowed for any value, \
            and attributes are easy to specify as well"#}

        a href={crate::get_link()} { 
            "Like so!"
        }
    }
}

Please don't ever use this, as it's idiosyncratic and designed solely to satisfy our own quirks, but for the curious, you can browse the source code if you are so inclined.

If you'd like to see Morgana in use, feel free to check the source code for this site as well. It does some cool cursed client-side animations, which you may have noticed while clicking around.


Tlulxe

A hobby-project bytecode interpreter for the Glulx interactive fiction story format.

Most of its code is kind of boring unless you like opcode implementations — all the interesting stuff happens in story files!

#[code(0x10)]
fn Add(a: u32, b: u32) -> u32 {
    a + b
},

#[code(0x11)]
fn Sub(a: u32, b: u32) -> u32 {
    a - b
},

#[code(0x12)]
fn Mul(a: u32, b: u32) -> u32 {
    a * b
},

#[code(0x13)]
fn Div(a: u32, b: u32) -> u32 {
    a / b
},

Theoretically this will be usable to play interactive fiction at some point, but right now we need to implement the i/o.