#2026-W15
### [play.kindl.work](https://play.kindl.work)
While digging through old sketches from so-called [Daily Practice](https://zachlieberman.medium.com/daily-sketches-in-2017-1b4234b0615d) *(a well-known practice that keeps you alert and constantly uncovering new possibilities)*, I picked some of the more interesting ones, mostly from **p5.js** or **Processing**, and optimized them for the web. They are now live at **[play.kindl.work](https://play.kindl.work)**, as a small **online pixel playground**. Arrow keys or the on-screen UI let you move between sketches, and most of them are interactive in some way. *Flowfields, DLA, physarum, Langton's ant, boids, galaxies, or cymatics.* Should work on mobile too.
![[play-kw.jpg]]
---
### TouchDesigner, meet the agent
Code generation *(or scaffolding)* is slowly leaking into most of the creative software I use. Some of it arrives through MCP servers, some of it is bolted directly into the app. I've already tested it inside Figma, KiCad, Blender and MAX/MSP. This week I also gave it a try inside **TouchDesigner** via [TWOZERO](https://twozero.ai/), basically a native *TouchDesigner component plus an MCP bridge for agents*. It can read a project, build node networks, set parameters, and edit patches from a prompt. It still hits walls sometimes, but for a visual tool made out of boxes and wires, this is a step forward. Together with [LOPs](https://docs.dotsimulate.com/) it starts to build a nice foundation for working with LLMs in TouchDesigner. I am curious to see what this will all look like in a year or so.
---
### The space of all possible images
*A random thought experiment I sometimes come back to. It crossed my mind that, with computer performance and capabilities growing so rapidly, it can’t be that difficult to generate just any image on a 1024 × 1024 black-and-white grid, can it?* **Take a 1024 × 1024 grid. Each pixel is either black or white. How many unique images fit in that grid?**
The answer is **2<sup>1 048 576</sup>**, a number written out with **315 653 digits**. For scale, the number of atoms in the observable universe is usually estimated around **10<sup>80</sup>**. If every atom in the universe were a separate computer running since the Big Bang, the collective effort would still cover only a fraction of this space so small it would take well over **315,000 zeros** to write out before the first non-zero digit.
> [!meta]
> | Grid | Pixels | Possible images |
> |---|---:|---:|
> | 3 × 3 | 9 | 512 |
> | 4 × 4 | 16 | 65,536 |
> | 5 × 5 | 25 | 33,554,432 |
> | 8 × 8 | 64 | 18,446,744,073,709,551,616 |
> | 1024 × 1024 | 1,048,576 | 2<sup>1 048 576</sup> |
> Let’s say the Mac M4 can handle ~100,000 images per second. That’s ~8.6 × 10^9 images per day, or roughly 10^(-315,641) % of all possibilities. In other words, even if that Mac had been running *since the Big Bang (13.8 billion years ago),* it would have gone through about 4 × 10^17 seconds × 10^5 images/s ≈ 10^22 images, or roughly 10^(-315,629) % of the total. That percentage is so close to zero that there is no analogy that could capture it.
And yet, **everything is in there.** Every photograph ever taken. Every painting ever made. Frames of events that have not happened yet. The space is complete, but so incomprehensibly vast that finding anything meaningful by brute force is harder than locating a single atom in the cosmos, when most of the images are just noise.
![[w15-combinatorial-space-v3.png]]
**Generative AI is an obvious shortcut through this space.** Instead of counting through every possible pixel configuration, it learns to navigate directly toward the "useful" ones. An elegant solution to an impossible problem.
---
### tok€ns
I spent most of the last month writing, programming, and researching artificial intelligence agents, and I started noticing those disappearing tokens *(and thus money)* more and more. So I’ve been thinking about how to gradually optimize my workflow so that the language model doesn’t always have to process so much text to get the necessary context. I’ve shortened the system prompts, used smaller models for routine tasks, and limited the context where it wasn’t necessary. At the same time, I’ve made Vault even more versatile, so if I suddenly drop Codex or Gemini CLI into it, it can pick up where previous projects left off fairly reliably.
---
### How AI models are ~~manipulated~~
This week [BottleCap AI](https://www.bottlecapai.com/), a Prague-based European AI startup, released **[AI Scan](https://scan.bottlecapai.com/)**, a tool that tries to make visible the **post-training edits hidden inside language models.** Instead of treating model outputs as neutral, it compares how different systems answer the same prompts and looks for shifts caused by opinion steering, topic avoidance, or sensitivity filters. It is partly framed as an enterprise audit tool, but I am more interested in the broader idea. *How does personal bias manifest itself in language models, and how will this affect the spread of information as we begin to use language models almost as a source of truth?*
![[aiscan.jpg]]