Clients
Teams we have built for, in games, engineering software, satellite communications, music hardware and retail.
Languages · Graphics · Games · Interaction
Lewpen Labs is an independent research & development company specialising in programming languages, graphics, games and user interaction.
Mode
Settings
Move to look around · hold to fly
Move to place the light · drag to orbit
Move to change the set · hold to zoom in
Hold to pull matter in · double-click to reset
Move the ball to push the cloth · click to drop it
Click to plant a seed · the shoots lean towards the pointer
Arrow keys or WASD to move · Space to grab without moving
Teams we have built for, in games, engineering software, satellite communications, music hardware and retail.
Frameworks, tooling and hosting we build and run in the open.
Reference guides we research, write and keep current.
Long-running investigations into how software could be written, replicated and undone.
Games, the servers that run them, and the machines that ran the games before them.
Generative graphics, fractal geometry and the music they are set to.
Thirty years of experiments, from MS-DOS games and 1998 Java applets to WebGL raytracers, and the Flash, Java and MS-DOS demos run again in your browser. 92 articles so far.
Turning the bytecode in a Flash movie back into ActionScript: reading the SWF, decoding AVM1, running the stack code symbolically and rebuilding the loops and ifs.
25 October 2026Write-up to come.
29 May 2024Giving ordered elements short IDs that reflect their position, whatever order they are inserted in: a naive approach, LSEQ and a tree of IDs.
4 May 2024Estimating how many unique values a stream has seen when you do not need the exact number, in a single byte of storage.
21 April 2024Patterns for writing one module that runs on both the frontend and a Node.js backend.
12 April 2024A 64-bit pointer addresses 16 exabytes: what that much address space allows beyond future proofing.
7 April 2024A multiplayer Asteroids arena written in JavaScript, with rooms running on Gamehoster.
15 March 2023The objects JavaScript offers for binary data, from ArrayBuffer and typed arrays to Node's Buffer, and how they differ between Node.js and the browser.
15 March 2023