Traction: Realistic Racing Game
Simcade circuit racer for macOS (Apple Silicon), built in UE5 with Metal. One car, one track, single-player, with full race systems.
Software & Game Development
Two projects: Traction, a simcade circuit racer for macOS in Unreal Engine 5, and Palmshed Sandbox, a secure language-agnostic sandbox runtime and SDK suite.
About
I work across real-time game systems and developer infrastructure. Vehicle dynamics, AI, cameras and race state on one end, process isolation, resource limits and network policy on the other. Both projects follow the same principle: small scope, clean architecture, evidence over claims.
Traction: one car, one track, one complete race. Sandbox: spec first, SDKs second, backends pluggable.
Projects
Simcade circuit racer for macOS (Apple Silicon), built in UE5 with Metal. One car, one track, single-player, with full race systems.
Language-agnostic sandbox runtime and SDK suite: secure execution, filesystem isolation, resource limits, streaming.
Case study 01: Game Development
A simcade racing game for macOS. The Unreal project keeps the RacingGame module identity; traction is the public repo identity. Prototype frames come from the real Metal renderer (Task 15 state): untextured, no art pass, shown as actual state.
A polished, accessible simcade racing experience on macOS: believable handling, AI racing, immersive audio and graphics, and a focused single-track loop.
In: 1 car, 1 track, simcade handling, chase and cockpit cameras, AI opponents, countdown and race systems, menus, audio, basic damage, macOS build.
Out: multiplayer, open world, customization, weather, career, microtransactions.
Custom movement and drivetrain with pursuit drivers that recover on the same physics path.
Chase and cockpit drivers. Laps, checkpoints, positions, timing, and countdown as one connected state.
Engine and tire audio on UE Audio. Metal renderer with a Blender and Substance pipeline.
Pawn, custom movement, drivetrain, config (game/RacingGame/Source/RacingGame/Vehicle/).
Chase driver + config. Cockpit in V1 scope.
Circuit actor + config, collision, checkpoints, headless map-gen scripts.
Race manager + config; pursuit AI. Test GameModes + E2E probes stay verification-only.
Case study 02: Developer Infrastructure
A language-agnostic sandbox specification and multi-language SDK suite: secure process execution, filesystem isolation, resource limits, network policies, and stdout/stderr streaming across pluggable backends.
Provide a secure, standardized runtime for untrusted or isolated workloads with a consistent API across execution backends and languages.
import { Sandbox } from '@palmshed/sandbox';
const sandbox = await Sandbox.create({
cpu: 2,
memory: "512MB",
timeout: 30000,
network: "disabled",
backend: "native"
});
const ex = await sandbox.exec("node -v");
await ex.wait();
await sandbox.destroy();
Hardened virtual filesystem, OS confinement on Linux, with CPU, memory, disk and timeout enforcement.
Isolated on macOS, probed on Linux, unsupported on Windows. The v1.0.0 contract is frozen with a 6 month deprecation policy.
Cross-language compliance and TCK with stdout and stderr streaming. SANDBOX_LOG=debug never includes secrets.
Technical skills
Unreal Engine 5, C++, Blueprints, Metal. Vehicle dynamics, AI, cameras, race state. Blender, Substance 3D.
TypeScript, Node.js, JSON Schema. Process isolation, resource limits, network policy. Docker, spec design, TCK.
Git and GitHub, GitHub Actions. Verification-driven development, headless testing, docs as contract.
Build logs
Each project keeps a running engineering log as a GitHub gist: verification over claims, revision by revision. Expand to render inline, or read on gist.github.com.
racinggame-engineering-log.md. Traction engineering record.
Click to load the live gist…
sandbox.md. Palmshed Sandbox revision history.
Click to load the live gist…
Open to roles and collaborations across games and developer infrastructure.