Nikita Seredkin · graphics & systems

I build graphics and systems software for the browser.

Real-time 3D, dense-data rendering, a custom physics engine, and the tools to author them — written in C compiled to WebAssembly and WebGL, from the primitives up, without frameworks.

Fifteen years of programming, largely self-taught, most of it at the low-level end: writing the renderer, the solver, the mesh kernel and the UI controls myself rather than reaching for a library. I care about software lean enough to be invisible — every live demo on my work page is a complete C/WASM application smaller than a screenshot of it.

German national, working remotely, fluent in English, German, and Russian. I treat the browser as a first-class rendering target for technical work — the way I think it should have been all along.

What I build

  • Real-time 3D & dense-data rendering — streamed-tile maps, a fully procedural planet, quadtree level-of-detail; the streamed kind of rendering the standard web stack chokes on.
  • Physics & simulation — a data-oriented articulated XPBD solver with inverse kinematics: rigid bodies, motorized joints, machines you can actually drive.
  • Tooling — an IDE I wrote from scratch: a code editor rendered in C/WebGL (no DOM), live preview, inline knobs, an embedded AI agent over a sandboxed shell.
  • Instrument-grade UI — rotary knobs, joysticks, XY pads, gauges: the controls you operate a machine or instrument with, which the web simply doesn't ship.
  • GPU audio — a synthesizer that generates sound with a shader: GPU-baked voices, GLSL audio, AudioWorklet playback.

How this was built

The honest version: I didn't write most of this by hand. I built it with language models — frontier and local, much of it with Claude Opus — and the collaboration is the actual subject, not a footnote. Each system here was scoped, structured, and verified by me, then implemented in tight collaboration with a model. Each took about a weekend.

Most of these projects are, underneath, experiments in directing AI: scoping a model to a task, guiding it by principle rather than line-by-line, and closing tight verification loops — me checking and teaching, or better, building harnesses the model checks itself against (a compiler as oracle, a rendered frame as oracle, a headless test). My component model does double duty — it keeps the software composable and lean, and it shapes a model's output into small, well-bounded, verifiable pieces, which is what makes the quality hold. The performance comes from design, not tuning: these are fast and tiny because they're built right, and the structure is exactly what a human directing by principle is responsible for. The fifteen years on the low-level end are what make the direction work — take the judgment away and the loop produces confident nonsense.

The full argument, with the oracles and the frontier-vs-local split, is written up below.

Contact

Open to remote work

I'm open to remote roles and collaborations in graphics, rendering, simulation, and tooling. The fastest way to see what I do is the work; the fastest way to reach me is email.

winchestro@gmail.com  ·  github.com/Winchestro