personal node / adelaide, australia

raya.ac

systems, security, cognitive infrastructure—and whatever else looked interesting enough to build from scratch.

current focus /systems close to the machine
online / still building
play with the squares
54original repositories
29public repositories
10primary languages
26+reported disclosures
—page views
—today
about these numbers

i last checked my repository figures on .

i have 60 repositories under raya-ac: 54 aren’t forks, and 29 are public. the public total includes forks. github lists 10 primary languages across my non-fork repositories. my zigcho repositories are counted separately.

26+ is my last recorded disclosure count. my site’s traffic counter supplies page views when it’s available. those aren’t unique visitors.

i build close to the machine.

i’m ari hawking, a systems and security engineer in adelaide. most of my work becomes local daemons, native macos apps, origin servers, games, research tools, or memory infrastructure for software that needs to survive more than one session.

i got into programming through minecraft plugins in 2013, helped build one of the largest osu! private-server communities, moved into security research, and never stopped following interesting problems into the lower layers.

recently i’ve been working on zigcho and my custom osu! lazer client, a music library with spotify import, model o control for macos, and chessverse. you can play my rhythm game, orbit shift, at rhythm.raya.ac.

i’ve split my zigcho server, pinned lazer client, and stable protocol harness into separate repositories under the zigcho organisation. on the hardware side, i’ve also built a native macos controller for cmf buds pro 2, alongside the model o app.

how i work

mostly zig, swift, c++, rust, python and typescript, depending on what i’m building. native apps when they make sense. a website when people need to reach it without installing anything.

i want the actual flow to work. a green build doesn’t tell me whether someone can finish a multiplayer room or download their replay.

what keeps me interested

games, native mac apps, memory, and the infrastructure underneath them take up most of my time. i like being able to follow a problem through the whole stack: the client someone uses, the protocol it speaks, and the server holding the state.

some projects start with something much smaller. i wanted to change my mouse settings on macos, control my earbuds without my phone, or check the network from my mac. those became apps of their own.

real systems, running somewhere.

no pitch deck. these are the projects with an actual process, protocol, build, user, or machine attached to them.

zigcho / kaimy osu! server, written in zig. i maintain stable support and a custom lazer client, with shared accounts and multiplayer.game infrastructure ↗ musicmy music library app, with playlists, local uploads, and spotify import.music ↗ model o controli built the macos controls i wanted for my wired model o: dpi, lighting, profiles, and device backups.hardware ↗ orbit shiftmy browser rhythm game, with ranked runs, chart leaderboards, player profiles, and custom uploads.play ↗
chessversei’m building a chess game with social play, collections, and custom boards and pieces.in development
layerlinezig origin server: http/2, http/3, tls, proxying, fastcgi.live engrampersistent agent memory with hybrid retrieval and entity graphs.active memorylayerhosted memory workspaces, ingestion, api keys, and exports.live mythicmy cognition runtime around engram: activation, reflection, checkpoints, and plugins.active secpulsesecurity disclosure workflows and credential-exposure tooling.live junkstepc++20/raylib rhythm battle game with a multiplayer backend.alpha kilnmy native swiftui workspace for agent clis, including claude code and codex, on apple silicon and intel.shipped zigcho!lazermy pinned osu! lazer client patch and portable builds. i maintain these separately from the server.client ↗ stable conformancei use this external harness to test my server’s stable protocol and legacy web compatibility.testing ↗
cmf buds pro 2 controli wanted my buds’ phone-app controls on macos: battery, anc, eq, gestures, and the smart dial.local app
ember cpua 32-bit cpu i built from scratch, with my own instruction set, assembler, c compiler, and jit.systems ↗ eero-maci made a native mac app so i could check my eero network without reaching for my phone.macos ↗ navy1851i wanted a colt navy in vintage story. my mod has separate builds for 1.22.7 and 1.22.3.game mod ↗ adelaide metro trackingmy adelaide public transport tracker, with vehicle positions, trip planning, and service alerts.web ↗ dns proxyi built a way to route selected domains through another exit node while keeping the rest of my connection local.source ↗ vergemy evidence workspace, with source registers, claim threads, maps, and receipts you can inspect.source ↗
aurora / srdpkitprivate macos security workbench and repeatable probe system.private

inside the projects.

a little more about the parts i’m building, and how they fit together.

zigcho / both sides of the connection

i maintain the server and my pinned lazer client together. stable and lazer share a kai account, while each score keeps the values and replay format its client submitted. vanilla, relax, and autopilot stay separate.

i keep the stable conformance harness outside the server repository so it can check the protocol from the other side. the website, multiplayer rooms, replays, and beatmap mirror are all part of the same project.

explore the repositories ↗ link to this note ↗
engram / work that survives the session

i built engram around persistent memory for agents, with hybrid retrieval, an entity graph, and mcp tools. it gives the next session a way to find the context behind the work.

memorylayer adds hosted workspaces, ingestion, and exports. mythic is my runtime around engram, with activation, reflection, checkpoints, and plugins. they’re related projects with different jobs.

read about engram ↗ link to this note ↗
ember / from an instruction set to pixels

i built a 32-bit cpu with eight registers, an assembler, a c compiler, and a jit. the browser simulator lets me inspect the datapath and zoom into the gates.

the doom experiment connects a webassembly build of the game to ember’s memory. an ember assembly program copies the pixels into the framebuffer, so the cpu sits in the display path. it’s a useful excuse to build the tools around the machine as well as the machine itself.

look inside ember ↗ link to this note ↗
native apps / the controls i wanted on my mac

model o control is for my original wired glorious model o: dpi, lighting, profiles, and device backups. cmf buds pro 2 control brings battery, anc, eq, gestures, and smart-dial settings onto macos.

eero-mac follows the same idea for my network. kiln takes it in a different direction: a native swiftui workspace for the agent clis i work with.

browse my native apps ↑ link to this note ↗
dns proxy / choosing which traffic takes another route

i built dns proxy around a domain list. matching domains go through an exit node; everything else uses the normal upstream dns. the dashboard is where i manage those rules, including wildcard domains.

there’s a mac menu-bar app for connecting and opening the dashboard. underneath it are separate dns, http and https components, so the routing rules and the web traffic each have their own job.

read the source ↗ link to this note ↗
eero-mac / my network, without reaching for my phone

i wanted my network’s health, connected devices and topology on my mac. i built a swiftui app with a menu-bar presence, speed-test history, guest-network controls and keyboard shortcuts for each view.

the activity timeline shows devices connecting and disconnecting, and i can export the data as csv. it uses eero’s unofficial api, so compatibility depends on changes outside the app too.

read about eero-mac ↗ link to this note ↗

evidence first. repeatable or it didn’t happen.

my security work covers platform edge cases, cors and origin behaviour, authorization boundaries, sandboxed data exposure, secrets, and client-side trust. i’ve filed more than 26 reports through apple security research, hackerone, bugcrowd, and direct disclosure.

an accepted apple report covered an iotimesyncfamily kernel race leading to a null-pointer dereference. the supporting workflow grew into aurora and srdpkit: baseline collection, controlled probes, diffs, evidence packaging, and reruns.

estradiol, drawn in the margins.

17β-estradiol / c18h24o2. a little estrogen signal living quietly in the system.

structure reference / pubchem cid 5757 ↗
17β-estradiole2
Skeletal structure of 17β-estradiol, with its aromatic ring and stereochemical wedge bonds.
c18h24o2pubchem / cid 5757 ↗
trans / lived system

transition is not a before and after.

i’m trans. it is not a separate project or a clean reveal; it changes how i understand identity, embodiment, privacy, and every system that tries to flatten a person into one fixed state.

estradiol is one part of that process: chemistry repeated over time, making room for the outside to feel less distant from the inside. the molecule is small. what it permits is not.

01 / body
becoming familiar

the point is not to become a different person. it is to make inhabiting this one require less translation.

02 / time
change accumulates quietly

transition is made from small repetitions. most days do not feel historic; together, they alter the shape of a life.

03 / visibility
being seen is selective

recognition matters, but so does ownership. being trans does not make every private part of me public property.

04 / state
no final version

there is no single finished build of a person. there is only a direction, more agency, and a body becoming easier to call home.

identity is not a database field.

most software wants one legal name, one gender marker, and one immutable history. being trans makes the failure obvious: a stale record can follow someone across platforms long after it has stopped describing them.

the danger is not only incorrect data. it is a system deciding that its copy of a person outranks the person standing in front of it.

asset

agency, privacy, continuity, and the right to describe myself in the present tense.

adversary

stale records, compulsory fields, inference, data brokers, and recovery flows that expose an old identity.

failure mode

someone else’s schema is treated as more authoritative than self-knowledge.

control

collect less, permit change, separate legal data from public identity, and never make disclosure the price of access.

the important changes are usually small.

not a progress dashboard and not a list of medical milestones. this is the scale that matters more to me: recognition, ease, agency, and fewer moments spent negotiating with my own reflection.

log / ongoing / recognition

less time spent translating myself before i speak; more room for the thought itself.

log / ongoing / embodiment

the body becoming a place i can notice without immediately needing to leave it.

log / ongoing / agency

choosing what becomes visible, when it becomes visible, and who is trusted with it.

small moments / high signalnot milestones. evidence of ease.
my name without a correction clothes chosen for me, not camouflage a reflection that does not interrupt the day a future described in the first person

trans & queer support.

crisis contacts, peer support, affirming care, and practical help in australia.

open the support page

a small wire back to the room.

♪current album artwork
spotify / now playingchecking…
checking the signal…
what i’m listening to
adelaide / local time

echo field.

make a loop out of little squares.

open on its own ↗
ready when you are0 / 16 squares

tap to add. drag to move. tap a square to remove it. higher squares make higher notes.

keyboard controls & sound

use “+ square” to add a note, then tab to a square. arrow keys move it; enter, space or delete removes it. sound starts only when you press play and pauses when you leave the field. sharing copies a link to your pattern.

get in touch.

you can email me, find my code on github, or message me on discord. my username is raya.ac.

back to top ↑