Skip to content

Changelog

What changed, and when.

Until this page there was no date anywhere on the site, so a returning reader could not tell whether the last change was yesterday or two years ago. It was . Entries are newest first, and each one is a link you can send someone.

Follow this without being followed

This site has no accounts, no newsletter, no cookies and no analytics, so there is no list to join and nothing here knows you came back. The Atom feed is the whole subscription mechanism: your reader fetches it, the site learns nothing about you beyond the request itself, and the privacy page stays true.

https://www.render-quest.com/feed.xml

  1. #

    A licence, and an address for every figure

    The repository went public, so the site got the two things a public project needs and did not have: terms you can rely on, and links that point at the exact thing being discussed.

    • Every figure in every essay now has its own link, and the ones with a control write that control into the address bar under the figure’s own name. An answer can point at one picture in one state instead of at a two-thousand-word page.
    • Each lab lists its own sections and how long the essay takes to read, both read out of the essay rather than typed beside it.
    • The code is under the MIT licence and the prose under CC BY 4.0, so a lecturer can lift a paragraph into their own slides without asking anyone.
    • A shared figure link used to lose the figure it named, and the instrument at the foot of a lab used to wipe every figure setting above it out of the address bar. Both are fixed, and the reader’s actual round trip is now tested on all ten labs.
    • The README opens with captures of the real site instead of asking you to imagine it, and a contributing guide says plainly what this project will and will not take.
  2. #

    Somebody drove the controls instead of loading the page

    The rendering test proved every lab drew something. It had never proved that a single control did anything. Driving all of them, and measuring the canvas before and after, found four labs telling the reader something untrue.

    • The texture lab’s magnification filter did nothing in any state the lab offered by name — every preset tiled the plane further, so every texel was already smaller than a pixel. There is now a preset that goes up close, where flipping the control moves the picture.
    • The technology chooser printed the points against a recommendation as though they were points for it, and once recommended a library directly above the same library marked impossible for that job.
    • The instancing lab kept your camera out of the shareable state, so orbiting it offered no link and reopening the page threw the framing away.
    • Eight keyboard and screen-reader defects, the largest being that the camera could only be moved with a pointer in all eight labs that have one.
    • Lab 1 was the thinnest page on the site and it is the front door. It now has the section it was missing, on how a matrix is actually laid out in memory — and the two premises that section rests on are checked by the test suite, so the prose cannot go quietly wrong.
    • The compute lab made you read most of a page before anything appeared. It now opens on a diagram of who calls each kind of shader.
  3. #

    The labs became essays

    A review found that the gap here was prose, not features: the arguments were real and correctly ordered, and they existed as slider labels with every sentence between them unwritten. All ten labs are now essays with the figures inside them.

    • Every lab opens with an argument and five or six linkable headings, and carries figures that isolate one variable each. The full instrument stays where it was, at the foot of the page, because a panel that answers every question at once cannot teach any single one.
    • The figures drive the lab’s own scene, so a figure cannot show something different from the instrument it introduces.
    • The editing pass checked the numbers against the source and found claims it does not support — a quoted range taken from part of a slider, a highlight described as smaller than a triangle when it is not. Those were corrected in the labs, not only in the prose.
    • A forty-four-character identifier in inline code was pushing a phone sideways by two pixels.
  4. #

    A claim that did not survive being checked

    The belief that nobody else teaches graphics by direct manipulation shaped a fortnight of work, and it is false. It is recorded here rather than quietly dropped, because a silently edited belief teaches nothing and invites the same reasoning again.

    • LearnWebGL has been teaching transforms, cameras and projections through slider-driven demos since 2016 — including the camera-drawn-beside-its-own-view diagram this site thought it was first at. The honest claim is much narrower: the position is occupied by something dated and hard to find.
    • No eleventh lab. Another chapter would move coverage by three percentage points and change nothing about whether anyone arrives. The missing thing was words.
    • The README was still describing the site as it stood on day one, advertising two labs when there were ten.
  5. #

    Three more labs, and a colour bug in every shader on the site

    Colour, depth and a shader you write yourself — plus the discovery, while building the first of those, that every shader here had been doing its arithmetic in the wrong colour space.

    • Colour & gamma, depth & transparency, and write a shader: labs 8, 9 and 10.
    • Every shader on the site multiplied sRGB-encoded numbers and wrote them straight to the screen. It is the most common bug in real renderers precisely because it does not look like one — it darkens midtones and hardens the terminator, which reads as a lighting choice. Fixed in the shared lit shader and in both of the shading lab’s stages.
    • Every lab’s controls now serialise into the address bar and restore from it, with a copy button that appears once something has been moved. Only what differs from the defaults is written, so a link says what was changed and nothing else.
    • A lit, depth-tested, spinning cube now sits alongside the plasma on all four technology pages. A fullscreen effect has no geometry, no camera and no depth buffer, so it compares almost nothing.
    • Every page on the site had been sharing as the home page — the same title, description and URL on every link anyone posted.
    • A test that loads every lab in a real browser and reads the canvas to see whether it drew anything. Its first version passed while every lab was blank, which is the best argument for it existing.
  6. #

    A sequence, not a gallery

    Six labs were six unconnected pages. They are now numbered, each assuming the one before it, and each one ends somewhere.

    • Labs are numbered with stated prerequisites, and every lab closes with its vocabulary, the previous lab, the next one, and a way to report confusion.
    • Every lab shows the code that draws it. It was possible to finish a lab having never seen a line of source, on a site whose whole claim is that the plumbing is the subject.
    • Presets: three or four saved states per lab, each with a sentence on what to look at once it lands. Some labs opened with sixteen controls and no indication which one was worth moving.
    • Textures & sampling, and draw calls & instancing — where one instanced call and ten thousand separate ones produce the identical picture from the identical buffer, and the measured CPU cost differs by more than ten times.
    • A layout that works on a phone. The slider used to sit two screens below the render it changed, on a page that refused to scroll if you started the gesture on a canvas.
    • The roadmap, published — including the proposals that were turned down and the reason for each.
  7. #

    Render Quest rebuilt around interactive labs

    The site stopped being a landing page with a tutorial bolted on. Drag the numbers, and the matrix, the geometry and the rendered pixels move together.

    • The first labs: the model matrix, the frustum, the coordinate spaces a vertex passes through, and a lit sphere with the normal-matrix bug reproducible in two clicks.
    • Every image on the site was replaced by something actually rendering. The hero is a camera frustum you can orbit, not a picture of one.
    • A lab WebGL cannot run at all: a hundred and twenty thousand particles whose position and velocity live in a GPU buffer and are stepped by a compute shader, so the answer to "what is WebGPU for" is a page rather than an argument.
    • The four technologies compared on one identical scene, a curated reading path, a glossary, and search across the lot.
    • The site had been advertising six tutorials and shipping one, with five live 404s. Anything unbuilt now says so and is not a link.
    • Light mode, with the canvases taking their colours from the page instead of sitting on it as dark rectangles.

Where these come from

There is a working note in the repository for each of the 7 days this site has been worked on. Those are notes to self: they name commits, count tests, and carry a list of things that are currently broken. The entries above are written from them and are not generated out of them — no part of a working note is published by machinery, so a note written tomorrow publishes nothing until somebody decides what of it a reader should see.

If you would rather have the unedited version, the notes are in the open too: todo/ in the repository. What is planned is not here at all — that lives in the roadmap and in the issue tracker it points at.