Notes on programming
Igor Konovalov — a fullstack developer in Belgrade. Experiments and notes on software, AI agents, and generative art.
- projects
Diablo II, days seven to eleven
Five days of the d2-recon preservation project: the combat run and two more simulation phases, quests, travel and the economy in scope, two real clients in one game, 99,450 emulated skill cases, the first run of the core specs composed end to end, and three nights the machine was asleep or out of memory while the lanes ran.
Read → - projects
Voxel engine, days two to six
Five days of the voxel engine, from version 0.3 to 0.24: the surface look chosen by eye, a night in which nine plans closed while I slept, collision, audio, an op log and a WebAssembly host, a new brick format that cut RAM by four, the primary-ray line met, the edit line raised, cavern reverb tuned by listening, and a world you can see from outside.
Read → - projects
Diablo II, days five and six
Days five and six of the d2-recon preservation project: the agents ran an unattended queue of plans through two nights, every row of the research map but the newest is now a reviewed spec, the creation paths that waited for the core are done, combat simulation entered scope, and seven sessions the agents could not play, I played.
Read → - projects
Voxel engine, day one
A new project: a game-agnostic voxel engine in Rust, ray-marched in compute shaders. Day one took it from an empty repository to a streaming cave you can fly through and dig, with every budget the code could touch measured and three of them missed.
Read → - projects
Diablo II, day four
Day four of the d2-recon preservation project, this time with pictures: the research map as a grid, special monsters with only 256 possible names, a unique and set target that would have taken about 450 sessions to reach, a map of the Blood Moor built from one number, and a harness that can now run several copies of the game at once.
Read → - projects
Diablo II, days two and three
The d2-recon preservation project, days two and three: the room-seed draws reproduced exactly, monster pools from one number, a party rule settled with two copies of the game, magic find that is linear below 11, and a champion branch that is dead code. And the agent stopped being the only player.
Read → - projects
Diablo II, day one
The first day of a preservation project: documenting Diablo II 1.14d precisely enough to rebuild it. A random number generator with 666 in it, a seed tree checked against 5,954 values from the running game, three million rendered sprites, and a file format an agent remembered from somewhere it could not name.
Read → - projects
What 207 commits are made of
One day, two conductors, two repositories: sixteen plans merged, fourteen releases and eight production deploys. What the commits actually were, who made them, what capped the speed, and what it cost.
Read → - projects
Approval is the go
A conductor that runs approved plans to a merged main with nobody watching: why the manual seams could go, a headless contract observed rather than read, a repository believed over a session, parking as the default answer, and what twelve days of runs cost.
Read → - projects
The viewer is a windshield, not a cockpit
A desktop market-analysis workbench with no buttons worth pressing: one local sidecar exposing one capability set twice, an agent as the control surface, a window that only draws, and a reversal taken one day after the decision it reversed.
Read → - projects
A budget with a measurement beside it
What makes a non-functional requirement bind: naming the unit, deriving the number, scoping it to what you control, admitting what it does not cover, and noticing when your instrument reports zero because it measured nothing.
Read → - projects
Every gate states its blind spot
What a green test suite licenses you to believe, written down: five visual gates, the questions each one cannot answer, an impossibility result kept as a permanent ignored test, and a blind spot created by the very thing that makes a baseline good.
Read → - projects
How 315 markdown files stay true
Documentation conventions decay silently in an agent-written repository. Eight gates that make prose rules executable, the rot each one was written against, and the stronger move: generating the reference instead of checking it.
Read → - projects
The harness, revised
Five changes to the agent-coding harness since July: a gate with a tier, lanes added by decision record, worktrees moving inside the repository, a vendored skill with a hash, and a transplant that took a day.
Read → - projects
Ritmolux: one core, two frontends
A real-time music visualizer in Rust: one shared engine feeding a standalone app and a foobar2000 component, driven by editable text presets, with a documentation site that is the reference.
Read → - projects
Running a real project as a team of agents
The agent-coding workflow I refined over one real project: externalized plans, specialist skills, fresh-context review, and guardrails enforced in code.
Read → - projects
Arduino Node SocketIO Setup Tutorial
Tutorial on connecting Arduino to a webpage through Node.js and Socket.IO
Read → - projects
L Systems Generator
L-System fractal generator with 40+ preset shapes and full customization
Read → - projects
Mathematical Rose Revisited
New and improved version of Mathematical Rose Generator with auto-animation, randomizer, and PNG export
Read → - projects
Phyllotaxis
Phyllotaxis pattern recreation on canvas
Read → - projects
Mathematical Rose Walker
A simple walker reflecting a mathematical rose path
Read → - projects
Islamic Star Patterns in SVG
Islamic star patterns implemented in vanilla JavaScript and SVG
Read → - projects
Maurer Rose
JavaScript implementation of mathematical rose and Maurer rose curves
Read → - projects
Random Lines in SVG Shapes
Random lines drawn inside SVG shapes - hexagons, squares, and triangles
Read → - projects
Random walker with vector object (Lévy flight)
Random walker implementation using vector objects and Lévy flight
Read → - projects
Simple Random Walker
Simple random walker on canvas in pure JavaScript
Read → - projects
Elementary Cellular Automaton
Elementary Cellular Automaton implementation in JavaScript
Read → - projects
Game Of Life!
Conway's Game of Life implementation in JavaScript
Read → - personal
Hello World!
First blog post - Hello World!
Read →