J.Konstapel,Leiden,16-8-2026.
Ik zoek jonge ondernemers en onderzoekers die mee willen bouwen aan Maze.
In Maze wordt de Vacuum.Net theorie toepasbaar gemaakt voor de mensheid.

Vandaag heb ik de verbouw van Swarp afgerond.
1 Swarp Extensive
Dit is de oude swarp alleen gratis totdat de kosten gaan oplopen.
2 Swarp-Support
Dit is een uitgeklede (“versimpelde) versie (ook gratis t.n.o), waarin de Persoonlijke Blauwdruk (PB) is gekoppeld aan Swarp Kids, speciaal voor ouders, die de kennis van het PD willen gebruiken om hun kinderen “beter” op te voeden, c.q. te begeleiden op hun levenspad.
Hier kunnen ook Oma’s,Opa’s,Ooms,Tantes, en Huisvrieden aan mee doen.
Dit is zoasls Faceboek had moeten zijn.

Twee weefgetouwen en één doolhof
Sinds 15 augustus 2026 draaien er twee SWARP-applicaties naast elkaar in Frankfurt.
Ze delen één Postgres en één sessiegeheim.
De eerste staat op swarp.onrender.com.
Dat is het volledige weefgetouw: honderdachttien routerbestanden aan de serverkant, tweehonderdtwee pagina’s aan de clientkant, vierenvijftig schemabestanden. De tweede staat op swarp-support.onrender.com en is precies dertien pagina’s groot.
Dat verschil is geen ongeluk en geen tussenstand. Het is een architectonisch besluit. Het legt de hele verhouding tussen theorie en product in SWARP bloot.
De grote applicatie is een volledigheidsclaim. Een mens is niet tot één domein te reduceren. Een platform dat over die mens gaat, mag zich dus ook niet tot één domein beperken.
De kleine applicatie is een bruikbaarheidsclaim. Een ouder die om half acht ‘s avonds wil begrijpen waarom haar kind reageert zoals het reageert, heeft geen veertien draden nodig. Zij heeft er één nodig die werkt.
Beide claims zijn waar. Ze verdragen elkaar alleen niet in één interface. Daarom staan ze in twee.
Wat ze wél delen is de identiteit. De users-tabel is gemeenschappelijk. Render geeft het SESSION_SECRET van de ene service door aan de andere. Het schemabeheer is asymmetrisch geregeld: alleen Comprehensive draait db:push, want zijn schema is het superset. Support maakt zijn eigen tabellen idempotent aan bij opstart en raakt de rest niet aan.
Wie in de één inlogt, is in de ander dezelfde persoon. Dat is de identiteitsfusie. Zij is de voorwaarde voor alles wat hierna over MAZE gezegd wordt.
II. Comprehensive: het weefgetouw
De grote applicatie is georganiseerd rond een metafoor die niet decoratief is maar structureel. Het weefgetouw kent draden. Elke draad is in de code een domain met een eigen schemabestand, een eigen set routes en een eigen publieke naam.
De schering — de vaste lengtedraden — is Swarp Politiek: lokale democratie, partijen, burgerinitiatieven, raadsinformatie. De inslag beweegt daar dwars doorheen en is Swarp Werk: fiscaal, opdrachten, certificering, vakmensen. De spoel waaromheen het garen wikkelt is Swarp Kids.
Daarnaast staan de vonk (Swarp Academie), het prisma (Swarp PoC), het spectrum (Swarp Zingeving), de dauw (Swarp Gezond), het patroon (Swarp Atelier), de knoop (Swarp Hobby), de kettingboom (Swarp Thuis), de proefdraad (Swarp Lab), het talent (Ontdek Talent) en het oerlicht (AYYA360). Wat overblijft heet het weefsel: Swarp Community, altijd actief. Dat is namelijk wat ontstáát als de rest samenkomt.
Die namen zijn geen etiketten op bestaande software. Ze zijn de indeling zélf. shared/domain-config.ts is de enige plek waar een draad wordt gedefinieerd. shared/schema/<draad>.ts is de enige plek waar zijn tabellen staan. Cross-page imports zijn verboden; wat gedeeld moet worden gaat door @shared/. Het weefgetouw is dus letterlijk de modulegrens.
De app-laag
Bovenop die veertien draden ligt sinds kort een app-laag. De homepage is een springboard. shared/app-registry.ts verdeelt het geheel in negen thematische categorieën — mezelf, gezin, werk, bestuur, kennis, gezondheid, creatief, community, lab — met ongeveer tweeëntwintig apps.
Sommige apps wikkelen een draad in; dat zijn de domain-apps. Andere staan op zichzelf: profiel, spiegel, gezin, beroepen, seeds, recht, essays, systeem, beheer. Een nieuwe gebruiker krijgt er drie geïnstalleerd — profiel, AYYA360, community — en haalt de rest zelf uit de app-store.
Dat is het antwoord op het schaalprobleem van een platform dat over alles gaat. Je geeft de gebruiker niet alles. Je geeft hem de winkel.
De rekenkern
Onder de draden ligt de rekenkern. AYYA360 berekent uit geboortedatum, -tijd en -plaats een blauwdruk: Human Design-type, autoriteit, profiel, en daaruit een PoC-verdeling en een RIASEC-vector. Die keten is canoniek. Hij loopt via de nilpotente kernel, niet via een losse hulpfunctie, en wordt bewaakt met een regressietoets. Daaromheen hangen levensloop, heldentocht, daghoroscoop, beroepsmatching op echte O*NET-data, compatibiliteit tussen twee blauwdrukken, en de coach.
Onder álles ligt de postcode. Dat klinkt banaal en is het niet. SWARP is een bottom-up burgersysteem, dus de eenheid van “lokaal” moet één ding zijn en niet acht. server/services/postcode-resolver.ts is de enige waarheidsbron over plaats — gemeente, wijk, provincie — met PDOK als terugval en een cachetabel als geheugen. De gemeente- en wijkkolommen die elders in oudere schema’s rondslingeren zijn expliciet als schaduwvelden gemarkeerd. Wie wil weten wie er nog meer in zijn wijk woont, vraagt het aan de resolver.
De nilpotente kernel
Twee mechanismen geven de applicatie haar eigenaardige karakter. Het eerste is de nilpotente Rowlands-kernel.
In server/nilpotent-kernel/rowlands.ts staat de fermiontoestand Ψ(E, p, m) = I·q_k·E + q_i·p + q_j·m. Het kwadraat daarvan is E² − p² − m². Ψ is nilpotent — Ψ² = 0 — precies dan als de massaschil geldt. Dat is Rowlands’ universele herschrijfvoorwaarde.
In SWARP is dat geen metafoor maar een poortwachter. Elke toestandsverandering wordt als voorstel aangeboden aan propose(), of ze nu van een mens komt of van de autonome platformagent AIDEN. Alleen als het residu onder epsilon blijft, wordt ze toegelaten. Wat off-shell is wordt geweigerd, mét het residu als bewijs, en gelogd per dominante PoC-as: blauw, rood, groen of geel. De correctiestrategie hangt van die as af; blauw-dominant corrigeert de rustmassa, dus het institutionele script.
Er is geen extern beleid dat bepaalt wat mag. De algebra laat toe of weigert. Dat mens en machine door dezelfde poort moeten, met dezelfde Δ-signatuur, is de belangrijkste symmetrie in het systeem. Zij mag niet gebroken worden.
De leerlus
Het tweede mechanisme is de leerlus. Elke gebruikersroute krijgt een tag met een PoC-vector, RIASEC-letters en een dradenvector. Wat een gebruiker bezoekt wordt gevolgd. Wat hij vervolgens verrassend vindt wordt als surprisal geregistreerd. De voorspeller stelt de volgende stap voor.
Dat is de vrije-energie-gedachte in bedrijf: navigatie als het minimaliseren van verwachte verrassing, met een gids die zich naar de gebruiker vormt in plaats van andersom.
Daarnaast draait er een periodieke PoC⁴-audit. Die classificeert alle actieve modules in een viertupel over de realiteiten U, S, M en So, en maakt daar een heatmap van met gaten, hotspots en wezen. De laatste audits van 6 juli, 10 en 14 augustus staan gewoon in docs/.
Geen doodlopende UI
Ten slotte een regel die op elke pagina drukt. Elk semantisch teken moet ergens heen leiden: een PoC-kleur, een HD-type, een partijnaam, een gemeente, een tradielabel, een matchregel.
Een badge zonder bestemming knipt de draad door die de gebruiker volgt. Een geknipte draad is het einde van de beweging. Het is de strengste ontwerpregel van het project, en tegelijk de meest verwaarloosde in de meeste software.
III. Support: de magere carve-out
De kleine applicatie is uit de grote gesneden met een expliciete opdracht: inhoud en logica volledig bewaren, de interface vrijlaten. Wat overbleef is de ouder↔kind-kern.
Er zitten vijf dingen in:
- De blauwdruk is de rekenkern zelf, stateless aangeboden op één endpoint. Geboortegegevens in; HD-type, autoriteit, profiel, PoC-verdeling en RIASEC uit.
- SwarpKids zet dat om in een kindprofiel met dagmissies per HD-type, XP, levels, streaks en badges. Gamification die niet generiek is, maar uit het type van het kind volgt.
- VHS Beroepskeuze matcht echte O*NET-beroepen aan de blauwdruk en simuleert met AI hoe zo’n beroep aanvoelt.
- Familie & Gezin houdt gezinsleden bij, berekent gratis de composiet tussen twee leden en levert tegen betaling een pedagogisch rapport.
- Compatibiliteit doet hetzelfde voor twee volwassenen: samenwerkingsscore en centrumdynamiek gratis, relatierapport betaald.
Het interessantste verschil zit in het geld. Comprehensive kent Seeds: een intern saldo met pakketten en afschrijvingen. Support kent die niet. Daar staat een entitlements-tabel met zes producten, eenmalige aankoop, geen saldo en geen abonnement. Dat past bij het publiek — een ouder koopt een rapport, geen tegoed.
In de testfase staat op beide services TESTFASE_GRATIS=true. Alle afschrijvingen slagen dan gratis en er worden geen betaallinks getoond. Dat besluit is van 15 augustus en is met één omgevingsvariabele terug te draaien.
Wat er bewust niet in zit is even belangrijk: de profiel-lenzen — politiek, spiritueel, cultureel — en alle andere draden. Die komen terug, maar dan mét hun eigen app. De carve-out is geen afgeslankte versie van het geheel. Het is de eerste volledige app in een reeks die nog moet ontstaan.
IV. MAZE: de kaart onder alles
Op 9 augustus 2026 verscheen in Leiden het paper “Everything Has Its Number in the Maze”, onderdeel van Vacuum.Net. De centrale zin luidt dat een ding een bocht is die blijft terugkomen. Een dag later stond de kern ervan in de repo: server/maze-kernel/maze.ts, honderdveertien regels, zonder database-afhankelijkheid, met zesennegentig regels tests ernaast.
De constructie is van een bijna beledigende eenvoud. De elementaire daad is een turn met drie waarden: over (+1), recht (0), onder (−1). Een route is een rij turns. Stelling T7 zegt dat elke route van n turns overeenkomt met precies één geheel getal, en omgekeerd, via gebalanceerd ternair. De route (+1, −1, −1, −1, +1) leest 81 − 27 − 9 − 3 + 1 = 43. De rust — de route van louter nullen — is adres nul. De leegte staat dus op de kaart. Dat is geen poëzie maar een eigenschap van de codering.
Uit die ene bijectie volgen een paar dingen die er voor een platform toe doen.
Identiteit over schaal. Nullen vooraan toevoegen verandert het getal niet. (0, 0, +1) en (+1) zijn hetzelfde adres. Je kunt dus dieper kijken zonder dat wat je al wist verschuift.
Spiegeling. Alle plussen en minnen omklappen geeft het spiegeladres. De tegenpool is dezelfde route, andersom gelezen.
Capaciteit en plafond. Op diepte n bestaan er exact 3ⁿ routes, met de all-plus-route als plafond op (3ⁿ − 1)/2. De reeks 1, 4, 13, 40, 121 telt precies hoeveel er op elk niveau te onderscheiden valt.
Snijden is afronden. Wie een situatie leest die geen geheel getal is, leest tot de eenheidsschaal en stopt. De weggelaten staart is hoogstens een halve eenheid. Er is geen externe afrondregel nodig; de lezing centreert zichzelf.
De kern rekent in BigInt, zodat de bijectie op elke diepte exact blijft.
Wat er nadrukkelijk niet in zit staat in de kop van het bestand: de herschrijfdynamica die het ene getal naar het volgende brengt met behoud van sluiting. Dat is open probleem O2. De module levert de representatielaag — de kaart — en niets anders.
En daar wordt het interessant, want SWARP heeft die dynamica al. De nilpotente Rowlands-rewrite is precies een machine die beslist welke overgang van toestand naar toestand toegelaten is. MAZE zegt waar je bent; de nilpotente kernel zegt of je van hier naar daar mag.
Ze zijn nu nog twee vreemden in dezelfde codebase. maze-kernel weet niets van de database, nilpotent-kernel weet niets van routes. De hele toekomst van het MAZE-project binnen SWARP zit in de vraag of die twee elkaar kunnen vinden.
V. Wat MAZE met beide SWARPs kan doen
Wat volgt is deels wat de code al als voornemen vastlegt, deels beargumenteerde uitbouw. Ik markeer het als voorstel, niet als stand van zaken.
Adressering
De eerste en meest voor de hand liggende toepassing is adressering. SWARP heeft al een adresruimte-ambitie in zijn Spatial Web-laag: identiteiten, ruimtes en relaties krijgen een aanduiding die onder alle draden ligt.
MAZE biedt daar een radicaal goedkopere variant voor. Eén geheel getal per ding, met een diepte die zegt hoe fijn je gekeken hebt. Een wijk is een route van weinig turns, een straat een route van meer, een huishouden van nog meer. En omdat nullen vooraan het getal niet veranderen, is het adres van de wijk letterlijk een voorvoegsel van het adres van het huishouden.
De schaalsprong van postcode naar buurt naar gemeente naar provincie wordt nu door een resolver met een cachetabel afgehandeld. Zij zou dan een eigenschap van de codering worden in plaats van een opzoekactie.
De levensloop als route
AYYA360 tekent nu een levensloop en een heldentocht als opeenvolging van fasen. In MAZE-termen is een leven een rij turns: momenten waarop iemand over, onder of recht ging.
Dat levert twee dingen op die de huidige weergave niet kan. Het geeft elke levensloop een adres, waardoor twee levens vergelijkbaar worden zonder dat je hun inhoud hoeft te delen. Je vergelijkt getallen, geen dagboeken. Privacytechnisch scheelt dat nogal wat.
En het geeft de spiegel een exacte betekenis. De tegenpool van een levensloop is de gespiegelde route. Dat is precies het soort tegenover dat de compatibiliteitsmodule nu heuristisch benadert.
Navigatie met grofkorreligheid
De FEP-Schank-leerlus voorspelt nu de volgende stap uit tags en surprisal. Met een MAZE-adres per route krijgt die voorspelling een natuurlijke schaalknop: lees tot diepte drie voor een grove suggestie, tot diepte zes voor een fijne.
Het afronden is al geïmplementeerd. Het heeft de prettige eigenschap dat de fout begrensd is op een halve eenheid. Je weet dus altijd hoe grof je advies is.
O2 zelf
De vierde toepassing is de zwaarste: de herschrijfdynamica. Stel dat de nilpotente poort geformuleerd kan worden als een operatie op routes, in plaats van op (E, p, m)-tripletten. Dan valt de theoretische kern van SWARP samen met de theoretische kern van Vacuum.Net. De weigering die nu een residu boven epsilon is, wordt dan een route die niet sluit.
Dat is geen cosmetische herformulering. Het zou betekenen dat het platform en de fysicatheorie waar het uit voortkomt dezelfde wiskunde draaien. Elke afwijzing in de applicatie is dan een aanwijzing over de theorie.
Dit is het risicovolste onderdeel van de hele onderneming. Het is ook het enige waarvan ik zou zeggen: begin met de vertaalslag op papier, niet in code.
Support
Voor Support ligt de winst dichterbij en concreter. De blauwdruk is daar al stateless en zuiver rekenkundig. Een MAZE-adres per blauwdruk zou de composietberekening tussen ouder en kind terugbrengen tot een operatie op twee getallen.
Dagmissies voor kinderen zijn nu per HD-type vast. Als een missie een turn is en de week een route, dan wordt een streak letterlijk een adres. Een kind ziet dan waar het is, in plaats van hoeveel punten het heeft. Dat is precies het soort weergave dat een kind wél begrijpt en een puntentelling niet.
De slapende voorziening
Er ligt bovendien iets klaar. Sinds 10 augustus zit er een Claude-integratie in de grote applicatie — server/claude.ts en /api/claude/* — die pas wakker wordt als er een ANTHROPIC_API_KEY staat. Zij is bedoeld voor het sterkste beschikbare model.
De combinatie ligt voor de hand. MAZE levert een exacte, compacte, privacyvriendelijke representatie. Een taalmodel levert de duiding ervan in mensentaal. Het getal is de waarheid, het verhaal is de vertaling.
VI. Waar het nu staat
Eerlijk gezegd: de kaart is af en de reis is niet begonnen. maze-kernel is honderdveertien regels bewezen wiskunde, met tests die de exacte getallen uit het paper narekenen, en nul aanroepen vanuit de rest van de applicatie.
Dat is geen tekortkoming maar de juiste volgorde. Een representatielaag die je eerst in productie sleept en dan pas begrijpt, sleep je er nooit meer uit. Maar het betekent wel dat elke zin in het vorige hoofdstuk nog verdiend moet worden.
De verstandigste eerste stap is de goedkoopste met het grootste bewijs: geef één bestaand ding een MAZE-adres, niet alles. De levensloop leent zich er het best voor. Hij is al een rij. De spiegeling heeft er onmiddellijk betekenis. En een fout is er zichtbaar zonder dat er data door beschadigd raakt.
Als dat werkt — als twee mensen hun levens kunnen vergelijken via twee gehele getallen, en de uitkomst is herkenbaar — dan is de brug tussen het doolhof en het weefgetouw geslagen. Pas dan is O2 de moeite van het aanvallen waard.
Tot die tijd geldt wat er in de kop van het bestand staat. Het is een goede zin om een essay mee te eindigen: een ding is een bocht die blijft terugkomen.
