deby.co
Software that runs unattended.
Queues, browsers, and the plumbing that keeps them honest. The drawing behind this text is this page: four layers, wired the way they actually run, measured in your browser rather than described in a build report.
02 / work
Systems, and what they do when nobody is watching.
Each entry states the problem, the constraint it had to live with, the decision that was kept, and the alternatives that were dropped. The drawing separates into layers so the boundary between them is the thing you look at first.
Reserved. Four to six systems belong here. The list sits with the owner: problem, constraint, decision, measured result. Until those arrive this section stays empty rather than decorative.
03 / craft
The drawing is code, and you can read it.
One WebGL context serves the whole page. Lines are drawn at a constant screen-space width so they hold up at any zoom. Every vertex carries a deterministic perturbation of 0.0015 world units, derived from a hash of its own rounded position, which is why duplicate corners stay welded and the ink still reads as drawn rather than printed.
The grid fades through baked vertex colour instead of fog, because fog on a screen-space line shader is a guess and vertex colour is not. Dimension leaders are world geometry. Their labels are HTML, repositioned only while the camera is actually moving.
-
</>ink material and line merging src/scene/ink.ts -
</>the drawing, as plain data src/drawing/model.ts -
</>the same drawing, as an SVG print scripts/emit-fallback-svg.ts
04 / build
How this page is put together.
-
01
Static HTML first
All of this text is in the document before any script runs. The 3D bundle loads after first paint and never blocks reading.
-
02
One canvas, one render loop
Five chapters, one context, no remount. The loop stops when nothing is moving, so an idle page costs no frames.
-
03
One drawing, two renderers
The SVG print on this page is generated at build time from the same module that feeds the GPU, so the flat version cannot drift from the live one.
-
04
Gates that fail the build
A transfer-size budget and a copy lint, both non-zero on violation. The lint exists so this page cannot start describing itself in adjectives.
05 / contact
Say something specific.
The fastest way in is a link and a sentence about the system you are dealing with. If the problem is interesting, that is the whole conversation.