Contact EN 中文

Beyond work

What I do when nobody asked me to: music first, then an inventory of small projects.

Yangqin

Music

At university I joined the traditional music club and learned the yangqin, a Chinese hammered dulcimer.

I started later than most players, so I made up for it with steady practice. Beyond playing, I made the club's videos, wrote out scores, and planned and promoted its events.

  • University years: 2014–2018
  • 4 roles beyond playing: video, scores, planning, promotion

Live-coded music in Strudel

Music

I write music as code in Strudel, a browser live-coding language, working with Claude through a skill I put together.

Each track is a single JavaScript file you paste into strudel.cc and run, from a pentatonic ballad to a 5-minute symphonic suite. The skill bundles reference notes, pattern templates and a dependency-free MIDI-to-Strudel converter in Python.

  • 8 original tracks (one is a desert-flavoured variant of another)
  • Longest: Lux in Tenebris, about 5:12
  • 8 pattern templates, 5 reference docs
  • 1 MIDI → Strudel converter, no external dependencies

Inventory 6 items

  1. Aqua

    Game An aquarium game prototype where pixel-art fish become soft 3D bodies with pixel skins.

    Fish sprites are AI-generated, then Python scripts cut them out and turn them into three.js meshes. On top of that I built a single-player big-fish-eats-small-fish mode and a local multiplayer arena in the style of diep.io, with bot fish that follow the same rules as human players.

    • 10 fish species in 3 sprite styles
    • 10 bot fish in the arena
    • About 0.06 ms per game tick on my machine; a test fails if it exceeds 5 ms
    • About 2,500 lines of JavaScript, 6 design docs
  2. A novel written with structured files

    Writing A fantasy novel system where Claude Code writes chapters from structured Markdown files instead of a RAG pipeline.

    Characters, storylines, world rules and planted foreshadowing each live in their own linked file, and every chapter gets a structured summary to keep a long story consistent. My design notes argue why plain linked Markdown beats a vector database at this scale, and leave room to add retrieval later if it is ever needed.

    • Book one finished: 15 chapters
    • About 53,000 characters of Chinese prose
    • 4 main characters with reference sheets
  3. Claude for non-engineers

    Teaching A 2-hour course designed to get office, writing and planning staff started with Claude on their own.

    The whole course lives in one manifest file. A script generates the instructor handbook skeleton from it, and the chapter videos are HyperFrames animations built from the same content, so there is a single source. I kept the videos text-only with Traditional Chinese subtitles and checked colour contrast against WCAG AA.

    • 8 chapter video compositions, 60 scenes
    • 2-hour single session
    • Built in 3 days of work (13–16 July)
  4. Tzu Chi Video Kit

    Tool A kit meant to let non-technical colleagues ask Claude for on-brand animated videos in plain language.

    It holds a template in the Tzu Chi Foundation's visual identity, a scene grammar, a ready-made prompt, and notes on rendering and splicing in real screen recordings. It is built on HyperFrames, an open-source HTML-to-video framework that I did not write.

    • 3 scene types: content, divider, demo
    • 6 files
    github.com/KaelLim/tzuchi-video-kit (opens in a new tab)
  5. llm-wiki

    Tool A Claude Code plugin that packages Andrej Karpathy's LLM Wiki pattern so anyone can install it.

    The idea is Karpathy's: instead of retrieving from raw documents, let the model compile them into a persistent, linked wiki you read in Obsidian. I wrote the plugin around it: a skill, a session-start hook and a bootstrap script.

    • 1 skill, 1 hook, 1 bootstrap script
    • Concept credit: Andrej Karpathy
    github.com/KaelLim/llm-wiki (opens in a new tab)
  6. bepinex-modding

    Tool A Claude Code plugin with skills for modding Unity games with BepInEx.

    I wrote it up after real modding and debugging sessions, so the skills record fixes that actually worked, such as plugins whose update loop never fires. It covers both Unity build types and extracting or translating game text, including Simplified to Traditional Chinese.

    • 3 skills: Mono, IL2CPP, text translation
    • Published 2026-07-18
    github.com/KaelLim/bepinex-modding (opens in a new tab)