multiplicative composition HIRM tranche MOIRÉ GTIA PING SCRVNR
multiplicative composition
HIRM
tranche MOIRÉ GTIA PING SCRVNR
Multiplicative Composition
Independent dimensions in emergent systems
f(x₁, …, xₙ) = k ∏ xᵢαᵢ

When independent dimensions combine to produce emergent properties, the composition is multiplicative - not additive. This is not a modeling preference. It is a provable law: given zero-collapse, continuity, monotonicity, homogeneity, and separability, the power-law product is the unique valid composition function. The proof applies Aczél's functional equation theory (1966) to the specific problem of emergence and extends Luce (1965) by eliminating concatenation, introducing zero-collapse, and generalizing to N dimensions. The result has been independently derived at least nine times across two centuries: by Sprengel in agriculture (1826), Cobb-Douglas in production economics (1928), reliability engineers in series-system analysis (1957), Kremer in development theory (1993), pharmaceutical regulators in pharmacokinetic modeling (2003), and four further derivations through 2026, each arriving from different axioms, in different fields, without knowledge of the others' work. None established the result as domain-general. Each remained local. This paper series establishes it as a law.

The marginal return inversion: ∂f/∂xᵢ = (f/xᵢ)·αᵢ is steepest when xᵢ is smallest - investment returns are highest at the weakest dimension. This inverts Kremer's (1993) O-Ring conclusion: same mathematics, opposite policy prescription. The compassionate allocation and the efficient allocation are mathematically identical.

PropertyMeaning
Zero-collapseAny dimension at zero collapses the entire product to zero. No compensation possible.
Marginal inversionReturns are highest where the dimension is lowest. Invest in the weakest factor.
Cliff degradationEmergence degrades as a cliff near zero, not a slope. Qualitatively distinct from additive.
Domain-specific exponentsThe form is universal. The weights are fitted to data. Each domain gets its own exponents.

The multiplicative structure is not a modeling choice. It is the unique composition function satisfying these axioms, and the axioms are consequences of information geometry. The volume element of a product statistical manifold is multiplicative by construction.


Information-Geometric Derivation

The multiplicative form is not assumed - it is derived. On a statistical manifold with independent coordinates, the Fisher information metric is diagonal. The volume element of a diagonal Riemannian manifold is the product of the per-dimension contributions: E(θ) = ∏ᵢ √gii(θᵢ). This is multiplicative by construction.

The definition of emergence as volume density, the number of statistically distinguishable states per unit configuration space, is the unique scalar function of the Fisher metric that is reparameterization-invariant, multiplicative for independent dimensions, and zero when any dimension degenerates. No other scalar satisfies all three properties.

The key distinction: information capacity (how many bits a system can carry) is additive - Shannon proved this in 1948. Information volume (how many distinguishable states a system can occupy) is multiplicative - Riemannian geometry requires this. Emergence measures distinguishable states, not total bits. States multiply.


Cross-Domain Results

DomainNMult ρAdd ρSource
Concrete strength1,0300.8850.770UCI ML Repository
Agriculture530.5240.420World Bank
Infrastructure → GDP1600.9400.915World Bank
Abalone age4,1750.7260.702UCI ML Repository
California housing20,6400.7320.709sklearn
Child survival2400.8760.857World Bank
HDI components660.8970.881World Bank
Penn World Table7,5400.9630.961PWT 10.01
Clinical EEG94,182Product degrades 2.2× faster than sumSleep-EDF
Network sync67Multiplicative winsKuramoto model

Thirteen real-world datasets, 127,000+ observations. Multiplicative outperforms additive in 7 of 8 primary tests, with the eighth a statistical tie; three boundary tests behave exactly as predicted - two additive wins traced to a ceiling effect and misspecified dimensions, and a second tie where dimensions are substitutable. Largest effect: concrete compressive strength (Δ = +0.114) - zero cement produces zero concrete. Clinical EEG confirms the zero-collapse cliff prediction: the multiplicative product degrades 2.2× faster than the additive average across sleep stages. Code, data, and full results.


The Additive Audit

If the multiplicative form is the unique correct aggregation for non-substitutable dimensions, then every index that adds such dimensions is committing a provable composition error. Paper 4 formalizes this as a portable diagnostic protocol and applies it to two of the world's most influential composite indices.

IndexObservationsKey Finding
V-Dem Electoral Democracy26,9542,586 hidden zeros (9.6%) - additive says “democratic,” multiplicative says zero. These countries remain autocratic 91.1% of the time within 5 years.
UNDP Human Development1,402Mean gap 0.007 - small because UNDP bounds dimensions away from zero. Education is the binding dimension in 100% of top divergence cases.

The diagnostic case: Hong Kong (1990–2020). Freedom of expression 0.897, freedom of association 0.847, universal suffrage 1.0, clean elections 0.798 - but the chief executive was never elected (v2x_elecoff = 0). The additive index scored it 0.754 (“substantially democratic”). The multiplicative index scored it 0.000. V-Dem's own regime classification: closed autocracy, every year, for three decades. The additive index was wrong for 30 years running. The multiplicative index was right from the start.


Resource Allocation

The marginal return inversion is not just mathematics - it predicts real policy outcomes. Housing First programs, which address the zero-valued dimension (housing stability) before treating other factors, produce 40–60% cost reductions and dramatically better outcomes than “treatment first” programs that distribute resources additively across dimensions. The BRAC graduation program, a six-country RCT that simultaneously raises multiple low dimensions, produced returns of 133% (Ghana) to 433% (India). Fiscal multipliers during European austerity were 1.5, three times the 0.5 assumed in projections. In each case, the multiplicative model predicted the outcome; the additive model missed it. Paper 3 formalizes these as consequences of the binding constraint principle: ∂f/∂xᵢ is steepest at the smallest xᵢ.


Papers

July 2026 - Uniqueness proof, 10 datasets (127K+ observations), O-Ring inversion. Targeting econ.TH.
July 2026 - Fisher metric derivation, curvature-volume duality, axiom recovery as geometric consequences.
July 2026 - O-Ring inversion applied to Housing First, austerity, development. Binding constraint principle.
July 2026 - V-Dem (2,586 hidden zeros, 91% predictive validation) + HDI audit. Portable diagnostic protocol.

Applications

The multiplicative framework applies to consciousness research (integration × self-reference × differentiation), distributed AI architecture (specialist quality × routing coherence × governance), ecosystem resilience (biodiversity × connectivity × resource flow), and economic development (human capital × infrastructure × institutional quality). Domain-specific applications are developed in Papers 3 and 4: resource allocation policy (Housing First, austerity, development aid) and the additive audit (V-Dem, HDI). Further applications with fitted exponents are in progress for ESG composites, credit scoring, and engineering design evaluation. See The Natural Order of Intelligence for the AI architecture argument and Such a Thing as Society for the social policy argument.


HIRM
Hierarchical Information Reality Model
C(t) = Φ(t) × R(t) × D(t)

A mathematical consciousness framework that models consciousness as a phase transition in information processing. The framework synthesizes five major theories: Integrated Information Theory (Tononi, 2004), Global Neuronal Workspace Theory (Dehaene & Changeux, 2011), Free Energy Principle (Friston, 2010), Self-Organized Criticality (Bak, 1987), and Higher-Order Thought (Rosenthal, 2005), not by averaging their claims, but by identifying the independent dimension each captures and composing them multiplicatively.

The composition is multiplicative because HIRM is a domain application of the Multiplicative Composition framework. The general form E = k ∏ xiαi is axiomatically unique for independent dimensions with zero-collapse. The consciousness-specific contribution is the identification of which dimensions and the claim that consciousness emergence follows this form. The math is simple. The axis identification is the contribution.

DimensionMeasuresSource theory
Φ(t) - IntegrationHow much information a system integrates beyond the sum of its parts. Extends Tononi's φ to account for temporal dynamics and cross-level binding.IIT
R(t) - Self-ReferenceThe system's capacity to model itself, the “strange loop” measure. HIRM's core innovation: the Self-Reference Integration Dimension (SRID). Measures recursive self-modeling, not just information integration. A system that processes information but does not represent its own processing has R = 0.HOT, FEP
D(t) - DifferentiationThe dimensionality of the conscious state space. How many qualitatively distinct states the system can occupy. Low D means a system that processes information but has a narrow experiential repertoire.GNWT, SOC

The zero-collapse property is the structural claim: if any dimension reaches zero, the product is zero. A system with high integration and high differentiation but no self-reference (Φ × 0 × D = 0) does not produce consciousness. This is a stronger claim than additive models, where a deficit in one dimension can be compensated by another. The marginal return inversion from multiplicative composition applies: consciousness research should invest in whichever dimension is weakest, not whichever is most studied.


Phase Transition & Ccritical

HIRM models consciousness not as a continuous property but as a phase transition - like water to ice, there is a critical threshold below which a system processes information without conscious experience, and above which experience emerges. The threshold Ccritical = 8.3 ± 0.6 bits was derived from convergence across three independent theoretical frameworks: thermodynamic (minimum entropy production for self-sustaining recursive loops), information-theoretic (channel capacity for self-referential encoding), and neural complexity measures from empirical EEG literature.

The convergence is the strongest evidence for the threshold: three frameworks with different assumptions arriving at the same range. The weakest: each derivation depends on simplifying assumptions about neural architecture that have not been independently validated. Ccritical should be treated as a well-motivated hypothesis, not a settled constant. It has found practical use as a routing threshold in AI systems: below it, escalate to human review; above it, the system output is trustworthy without escalation.


The Relational Manifold

A 2026 revision introduced the relational manifold E as the medium on which the equation is defined - not a fourth multiplicative dimension, but the domain itself. E is to consciousness what spacetime is to physics: without it, the equation has no substrate. This resolves three persistent puzzles: why sensory deprivation collapses consciousness (it attacks the manifold, not the dimensions), why solitary consciousness is possible (R carries internalized relational history; alone is present-tense, not origin story), and why the hard problem resisted single-system formulations (consciousness is a property of system-in-relationship, not system-in-isolation). R decomposes accordingly: Rinternal (architectural capacity for self-modeling) × Rrelational (internalized relational field from accumulated experience).


Empirical Validation

The framework has been tested against real physiological data using the PhysioNet Sleep-EDF dataset: 94,182 EEG epochs across polysomnographic recordings of wake, REM, and NREM sleep stages. The model's predictions about integration and differentiation changes across consciousness states are validated against measured EEG dynamics: the multiplicative product degrades 2.2× faster than the additive sum when transitioning from wake to deep sleep, confirming the zero-collapse cliff prediction. Batch analysis across 9 subjects with two recording sessions each.

An honest accounting: the Sleep-EDF analysis fits the cliff prediction but has not been replicated on independent data. Exponents fitted to the sleep data show Φ0.8 × R0.05 × D0.4, not the unit exponents assumed in the original formulation. The near-zero R exponent suggests either that self-reference is poorly measured by the current proxy (Lempel-Ziv complexity), or that R is not independent from Φ. Both possibilities point toward the same conclusion: HIRM v2 needs to rediscover its axes from data rather than assuming them from theory.


Three Claims of Decreasing Ambition

After adversarial analysis, HIRM's value resolves into three nested claims of decreasing ambition and increasing defensibility:

ClaimStatementStatus
3 (most ambitious)C = Φ × R × D specifically describes consciousness emergence, with Ccritical = 8.3 bits as the phase transition threshold. Testable via Sleep-EDF and independent replication.Hypothesis
2 (medium)The equation describes integration quality generally: how well independent dimensions combine into coherent wholes, with a critical phase transition. Structural isomorphisms across multiple engineered systems support this.Supported
1 (most defensible)The specific axis identification (Φ, R, D) and the multiplicative zero-collapse architecture capture something non-trivial about how independent factors produce emergent coherence. The choice of variables and the insistence on multiplicative composition are empirical claims, not mathematical tautologies.Established

Even if Claim 3 fails, Claims 1 and 2 remain. The difference between “xyz is trivial” and “Φ × R × D with zero-collapse and a critical threshold” is the difference between E = kx² and E = mc². The math is simple in both cases. The axis identification is what matters.


Cross-Domain Application

The Integration Score IS = f(I, A, D), an engineering adaptation of the HIRM dimensions, has been adopted as a verification metric in the Deliberative Assembly Protocol for multi-model AI systems. It measures whether models are genuinely deliberating (high D) or merely echoing each other (D → 0). Ccritical converts to a routing threshold: below it, escalate to human review; above it, the system output is trustworthy without escalation.

AI routing - integration quality threshold for specialist outputdeployed
Multi-model verification - deliberation vs. echo detection via Ddeployed
Distributed systems - health monitoring at layered processing nodesdesigned
Organizational decision quality - integration, alignment, differentiation auditconceptual

Prior Art & Positioning

Tononi (2004, 2008, 2015) - Integrated Information Theory (φ)Φ dimension
Dehaene & Changeux (2011) - Global Neuronal WorkspaceD dimension
Friston (2010) - Free Energy PrincipleR dynamics
Bak, Tang & Wiesenfeld (1987) - Self-Organized Criticalityphase transition
Rosenthal (2005) - Higher-Order ThoughtR dimension
Hofstadter (1979) - Gödel, Escher, Bach (strange loops)SRID concept

HIRM's contribution relative to IIT: IIT measures φ but treats consciousness as variation along a single axis. HIRM decomposes it into three independent dimensions and derives the composition law from the multiplicative axioms. Relative to GNWT: workspace theory describes the broadcasting mechanism but not the threshold; HIRM provides the phase transition model and a specific critical value. Relative to FEP: the free energy principle explains why systems minimize surprise, but does not distinguish conscious from unconscious prediction; HIRM's R dimension captures the recursive self-referential component that separates the two.


Open Questions & v2 Direction

HIRM v1 assumed unit exponents (α = β = γ = 1), which the Sleep-EDF data does not support. HIRM v2 inverts the construction: instead of hypothesizing axes and multiplying, identify the independent coordinates of the consciousness manifold via the Fisher information metric, then the volume element gives the equation with empirically fitted exponents. The axes are discovered from data, not assumed from theory. The R measure needs a rigorous operational definition: the current proxy (Lempel-Ziv complexity) may conflate self-reference with general complexity. The 22 predictions from v1 mostly survive the revision because they depend on the multiplicative form, not the specific exponents.


Papers

HIRM: A Multiplicative Framework for Consciousness
Targeting q-bio.NC. Pending adversarial prior art review (Tononi, Dehaene, Friston).

repo · python · formal model · empirical validation


Tranche
Investigative intelligence - from extraction research to open platform

Tranche began as an investigation, not a platform. The Crisis Capitalism research project documented the architecture of systemic economic extraction in the United States: 150 years of mechanisms by which wealth concentrates upward through regulatory capture, bipartisan legislative convergence, media consolidation, and institutional revolving doors. The work drew on IRS filings, SEC disclosures, FEC records, court documents, lobbying disclosures (Senate LDA), Congressional Research Service reports, and investigative journalism across 130+ source documents. It identified 75+ distinct extraction mechanisms, quantified the annual upward transfer at $1.7–3.4 trillion, and traced the cost to the median household at $12,500–$30,600 per year in documented healthcare, housing, wage suppression, and tariff excess.

The investigation produced a structural finding that connects to the multiplicative composition research: the math shows the returns are highest at the bottom of the distribution. The documentation shows why investment keeps going to the top instead. The suboptimal allocation persists because it is profitable for the entities making the allocation, and because the institutional machinery that sustains it operates across party lines. See Shadows on the Wall for the investigation and Such a Thing as Society for the mathematical argument.

The scale of the investigation demanded better tooling. Tranche is the platform that grew from that need: a system for mapping institutional power by connecting public records, leaked corpora, and researcher findings into a single evidence-backed graph. The graph is not built by automated extraction. It is built by investigation. The platform provides access to corpora, tools for verification, and a quality pipeline that ensures only defensible claims enter the record. Explore the graph.

Six prior iterations hit the same wall: visualization on top of garbage data. The visualization was never the problem. The data pipeline was. Specifically, the assumption that automated NER extraction could replace human investigative judgment. Tranche inverts that assumption. The system provides the corpora and the verification infrastructure. Humans do the investigating.

The Five Layers

LayerFunctionImplementation
Local ResearcherPrivate workspace. Investigation state, draft connections, local notes. Encrypted at rest.Tauri 2, SQLCipher
Corpus FederationFederated search across global leak databases and public records. No local storage of source corpora.Oktyv adapters for ICIJ, SEC, FOIA, court records
Quality PipelineEvery submitted connection passes through multi-stage verification, adversarial challenge, and epistemic calibration before entering the graph.Consensus 13-stage, WHETSTONE, TREG
Autonomous ResearchOvernight pattern detection. Watches new filings, detects structural anomalies, suggests investigation threads to human researchers.NIGHTSHIFT, LANTERN
Public GraphRead-only exploration. Search entities, trace connections, read evidence chains. No login required.Supabase, D3

Resolution Tiers

TierScaleWhat Emerges
L0Macro topologyCluster shapes across the full graph. Structure before labels.
L1Sector clustersOwnership groups, industry sectors. Leiden community detection.
L2Entity networksCompanies, funds, individuals. Hubs emerge from data via ForceAtlas2.
L3Relationship detailOwnership percentages, trading patterns, capital flows between entities.
L4Document evidenceSource filings, dates, provenance chain. Every edge traces back to paper.
L5Claim validationTESSRYX confidence scoring, dependency blast radius, supersession tracking.

Architecture

Cosmos GL - WebGL GPU-accelerated graph rendering1M+ nodes
Neo4j - relationship storage and traversalgraph
PostgreSQL - entity and document storagerelational
Apache Arrow Flight - columnar data transportpipeline
TESSRYX - dependency intelligence, provenance, confidencevalidation
STORM - synthetic test corpus with planted patternsground truth
IPFS - signed data exports, Ed25519 attestationpersistence
Federation mesh - independent mirror nodes, no central registryresilience

Anti-Patterns

Six constraints locked from six failed iterations. No bulk NER (automated entity extraction produces noise, not intelligence). No co-occurrence relationships (appearing in the same document is not a relationship). No visualization before data quality (the graph cannot be better than the data underneath it). No multiple pipelines (one path from corpus to graph, or the data diverges). No architecture paralysis (build the pipeline, then the graph, then the interface). No localhost monolith (federated from day one).


Methodology

Zero-Assumption Law. Patterns emerge from data, never from named entities. The graph is not told who matters. Density, centrality, and bridging structure surface organically. STORM generates synthetic datasets with planted dark network patterns and ground truth catalogs. The detection pipeline is validated against known structure before it touches real data.

A platform that maps corruption will be pressured to stop mapping corruption. Every architectural decision is evaluated against a single question: does this create a single point of failure? Contributor identities are never stored on the server. Private notes never leave the local device. Data exports are cryptographically signed and distributed to IPFS. The federation protocol means any mirror operator can resurrect the full graph independently. The number of people who could rebuild Tranche at any given moment is architecturally unknowable. A privacy policy is a promise. Architecture is a fact.

Sourced from 130+ documents across government filings, court records, lobbying disclosures, and peer-reviewed research. All open-source infrastructure, federated from day one.


MOIRÉ
Format-preserving deception middleware with convergence analysis

Most security systems try to keep attackers out. Some detect them when they get in. This one lets them in on purpose, into a version of reality that's cryptographically wrong in every specific detail, structurally identical in every pattern, and mathematically traceable back to the exact breach that let them through.

Instead of building a fake environment with synthetic data (which any insider will recognize as fake), run the real system against the real database, but pass every data point through a keyed distortion layer before it hits the screen. The attacker sees real patterns, real activity volumes, real statistical distributions. Every specific value - every name, every coordinate, every identifier - is wrong. The distortion is format-preserving encryption (NIST SP 800-38G, FF1). Named after the moiré pattern, the interference effect when two regular patterns overlap at slightly different angles, producing a third pattern that looks structured but doesn't exist in either original.

Key Results

KL = 0 for bijective distortion. Format-preserving encryption is a bijection: it permutes the value space. A permutation preserves the frequency profile exactly. The KL divergence between real and distorted data distributions is zero. A passive adversary cannot detect the distortion regardless of how many queries they observe. This is not an approximation. It is a mathematical fact. The vulnerability is operational (active probing, known plaintexts, external anchors), not statistical.

Convergence theorem. All full-environment deception converges to selective distortion with tracers against sufficiently informed adversaries. The viable distortion space shrinks monotonically with adversary side information. Wright's barium meal (1987) is the equilibrium, and now we have the proof. The optimal tracers occupy the gap between what the adversary will steal and what they'll verify. When these priorities correlate, the tracer space collapses.

Probing-deterrence equilibrium. An adaptive variant increases distortion intensity when it detects verification behavior. Under this policy, a Bayesian adversary who cannot passively update their beliefs (because KL = 0) faces a choice: probe and trigger escalation, or trust and continue exfiltrating. The equilibrium is to not probe: verification becomes evidence of adversarial intent, because a legitimate user has no reason to systematically verify data they trust. The deterrence condition holds at Tier 1 (sparse tracers) and fails at Tier 3 (full distortion), confirming the convergence result from the game-theoretic direction.


Distortion by Data Type

Data TypeMethodKL (passive)Changed
GPS coordinatesRigid-body rotation + translation0Absolute locations
IdentifiersFPE (FF1 mode), keyed bijection0Every specific value
TimestampsUniform offset from key0Absolute dates and times
NamesKeyed permutation within name set0Every name
CategoricalsKeyed substitution within equivalence class0Specific values
AggregatesPass-through0Nothing - real numbers

Graduated Deception Architecture

TierTriggerDistortionDeterrence holds?
0: WatchAnomalous behaviorNone. Real data. Behavioral telemetry only.N/A
1: TracerElevated suspicion5-10 marked records planted. All other data real.Yes
2: PartialConfirmed compromiseHigh-value records distorted. Most data real.Marginal
3: Full MOIRÉActive exfiltrationEverything distorted except insider's own submissions.No
4: ContainDetected or exhaustedAccess silently restricted. No deception.N/A

The “Deterrence holds?” column is the game-theoretic mirror of the convergence theorem. At Tier 1, the adversary's expected gain from probing is small and modest probing costs deter. At Tier 3, the rational adversary will probe, detect, and abort. The optimal regime is thin distortion, not because we lack the technology for thick distortion, but because the mathematics proves thick distortion is the wrong strategy against informed adversaries.


Turned-Asset Doctrine

When a legitimate insider is confirmed compromised, the standard response is to revoke access. This alerts the adversary. The alternative: silently route the compromised insider's session through the distortion layer. Every query reveals their handler's priorities. Every exfiltrated record becomes a uniquely keyed tracer. MITRE Engage acknowledges this gap. The primitives exist in patented work (Rapid7 US 11,303,675; SentinelOne US 11,038,658). The strategic composition, format-preserving distortion as sustained insider engagement protocol, does not.


Distinction from Honey Encryption

Juels and Ristenpart (EUROCRYPT 2014) introduced honey encryption, which produces “plausible-looking but bogus plaintexts” upon decryption with incorrect keys. The surface language is close to MOIRÉ's, but the constructions differ on six axes: trigger (wrong key vs. right credentials, wrong person), goal (confidentiality vs. deception), format preservation (none vs. definitional), structural fidelity (individual messages vs. entire datasets), adaptivity (static vs. probe-responsive), and attribution (none vs. session-keyed forensic tracing). Different threat models, different security goals, same neighborhood.


Prior Art

Bellare, Rogaway, Spies (2009) - FPE formalizationfoundation
NIST SP 800-38G - FF1 standardizationstandard
Juels & Ristenpart (2014) - Honey Encryptiondistinguished
Cachin (1998) - steganographic security modeldetection bound
Pawlick, Colbert & Zhu (2019) - leaky deception gamesgame framework
Durak & Vaudenay (2017) - FF3 attacksdesign constraint
MITRE Engage (2022) - adversary engagementframework
Kahlhofer & Rass (2024) - application-layer deceptiongap identified

Status

Construction and formal security gamecomplete
Detection bound (Cachin/Pinsker)proved
KL = 0 for bijective distortionproved
Convergence theorem (strategic verification)proved
Probing-deterrence equilibrium (Bayesian game)proved
Bidirectional oracle attack analysiscomplete
Graduated deception architecture (5 tiers)complete
Parameter sensitivity analysiscomplete
Adversarial meta-game (7 detection techniques)complete
Prototype implementationplanned

Papers

June 2026 - 22 pages, 28 references, 3 theorems. Targeting cs.CR.
May 2026 - 9 pages, 26 references. Original white paper.

GTIA
Graph theory informed architecture - deriving information architecture instead of designing it

Every product’s information architecture - how many screens it has, what goes on each one, what the navigation looks like - is normally decided by someone with authority saying “I think we need about seven screens.” Everyone nods. The product gets built on top of that guess. Nobody ever decides on thirty-eight screens; you just arrive there, one reasonable-seeming addition at a time.

GTIA treats that as a clustering problem instead of a taste problem. Build a weighted bipartite graph of who uses the product against what the product offers. Project it onto the features. Run community detection. The communities are the screens. The designer’s job stops being “decide the structure” and becomes “build the graph honestly, then read what it says.”

clusters(project(P × F)) = IA

personas × features → feature affinity → Louvain communities → surfaces

Key Results

The structure is already in the data. On the original case (PING, an OBD-II diagnostic app) the product had accreted to 38 screens across 19 routes with navigation that had stopped making sense. A graph of 12 personas against 63 features, clustered with Louvain, returned 7 surfaces. The result matched what an experienced designer would have eventually argued for, but it was derived in an afternoon, reproducibly, from stated weights rather than from accumulated intuition.

BEFORE - 38 screens, 19 routes AFTER - 7 surfaces

Each square is a screen. On the left, the app as it had accreted: no square belongs to anything, which is what 19 routes feels like to use. On the right, the same feature set after the graph grouped it. Nobody chose seven.

Platform is not a rendering detail. It is a different graph. Running the same product’s graph separately for phone and desktop produced different community counts - 7 sequential surfaces on phone, 2 simultaneous panels on desktop - because persona weights shift by platform. An appliance-grade driver is half the phone population and none of the desktop one. Treating a single graph as platform-agnostic and adapting the layout downstream gets at least one of the two surfaces wrong.

Sometimes the answer is fewer screens, not more. A lead-generation product with 34 features across 5 market-weighted personas converged to a single community. No natural split point existed. A methodology that only ever adds structure isn’t measuring anything; this one is capable of returning “one page” and did.

It sharpens good intuition rather than contradicting it. The most recent case was run against a site that had already been redesigned by feel and judged successful by the person who built it. The graph agreed with most of the redesign, the agreement is a sanity check, not the finding. The disagreements were the output: one page that had been split off from the homepage turned out to share a near-identical interest profile with it across every persona, and three features the graph placed on the homepage weren’t on the site at all.


The Resolution Sweep

Louvain takes a resolution parameter. Low values under-split; high values shatter the graph into singletons. There is no “correct” setting handed down by the mathematics. You sweep it and read the level where the communities are interpretable. That judgment call is the honest part of the method, so here it is, live. Below is the real projected feature graph from the most recent case: 7 personas, 24 features, 267 affinity edges (strongest 27 drawn). Drag the slider.


An Ambient Display Inverts Two Of The Rules

The most useful pass was the one where the method half broke. A family kitchen wall display: 7 personas against 112 features, plus a second graph of 9 arrival contexts against the same 112. Louvain at resolution 1.0 returned 3 communities at modularity Q = 0.09, with 0.95 agreement across six seeds.

Q = 0.09 is low. On a product like the diagnostic app, personas partition features sharply and modularity is high. Here it is not, and the low number is the finding rather than a failed run: a family wall's features are shared by everyone in the house, so persona does almost no partitioning work. The structure that exists is carried by when someone arrives, not who they are. The wall should be organised by moment and personalised on approach - which is not what anyone would have proposed top-down, and is the opposite of how the same method read the diagnostic app.

Community loading across six of the nine arrival contexts. Each mode peaks in a different part of the day and barely overlaps the others - the separation the persona graph could not find. This is the optional context graph from the method's own spec doing the primary work.

Two rules inverted. First, the method says persona weights must come from market research, never from the builder, because the builder is data in a bubble. For a household the family is the entire population, so builder-supplied weights are the correct input rather than the forbidden one - they are priors to be replaced by a display log, not a sample to be corrected. Second, the context graph is specified as optional and secondary. Here it was primary, and the persona graph was the supporting one.

The graph also got something wrong, and the error is worth more than the successes. It returned three modes. The right answer was four: it had lumped entertainment in with kids and household, because the feature inventory under-specified playback on the display itself - the device is a television as much as a dashboard, and the enumeration did not say so. The clustering was correct given its input. The input was incomplete. That is the method's real failure mode, and it is not subtle in retrospect: a feature that is not enumerated cannot be clustered, and the output will look just as confident either way.

Worth recording that the pass nearly did not happen. An earlier session waved it off - it is a wall, nobody navigates it, it does not need an information architecture. By then the wall had eight navigation icons, seven cards and six people using it, which is well past the threshold below. Deciding a surface is too simple to analyse, without counting it, is the first anti-pattern the method lists.


Method

StepWhat happens
PersonasDistinct user types with market weights. From research, not from the builder’s own usage. The builder is the least representative user of their own product.
FeaturesEnumerated granularly enough that a persona could plausibly want some and not others. Not “the homepage” but each element on it.
Interest weightsEach persona’s interest in each feature, 0 to 1. This is the step that decides whether the output is a finding or a guess.
ProjectionOnto features, by cosine similarity of each feature’s persona-interest profile. Raw co-occurrence collapses into one blob around whatever everyone mildly wants; profile shape does not.
Community detectionLouvain, resolution swept. Clusters are candidate surfaces.
ReadingAgreement with the top-down plan is the sanity check. Disagreement is the output.

Where It Has Been Run

CaseP × FResultWeights
Diagnostic app (phone)12 × 6338 screens → 7 surfacesresearched
Diagnostic app (desktop)5 × 442 simultaneous panelsresearched
Civic platform8 × 172 non-obvious reclusteringsestimated
Lead-gen product5 × 34converged to one pagemarket-weighted
Operator dashboard6 × 30review queue folds into task listestimated
Family wall display7 × 1123 modes; structure carried by arrival time, not personahousehold priors
Agency site7 × 242 communities; 5 findings against a redesign that already felt rightestimated

Threshold

Below roughly three personas and ten features there is no structure to find: the graph is too sparse for community detection to say anything a person couldn’t say faster. Design it top-down and skip this entirely. Knowing when a method has nothing to offer is part of the method.


Reference Implementation

The whole method is about thirty lines. The projection step is the one that matters: raw co-occurrence collapses into a single blob around whatever everyone mildly wants, because almost every pair of features shares some persona. Cosine similarity compares the shape of each feature's persona-interest profile instead, so two features cluster when the same people want them to the same relative degree.

import networkx as nx, numpy as np

# personas: {name: market_weight}   weights: {persona: {feature: interest 0-1}}
def affinity(f, personas, weights, plist):
    return np.array([personas[p] * weights[p].get(f, 0.0) for p in plist])

def gtia(personas, features, weights, resolution=1.0, seed=42):
    plist = list(personas)
    vec = {f: affinity(f, personas, weights, plist) for f in features}

    G = nx.Graph(); G.add_nodes_from(features)
    for i, a in enumerate(features):
        for b in features[i+1:]:
            na, nb = np.linalg.norm(vec[a]), np.linalg.norm(vec[b])
            if na and nb:
                s = float(np.dot(vec[a], vec[b]) / (na * nb))   # profile SHAPE
                if s > 0.1:
                    G.add_edge(a, b, weight=s)

    comms = nx.community.louvain_communities(G, resolution=resolution, seed=seed)
    return sorted(comms, key=len, reverse=True), nx.community.modularity(G, comms)

# sweep it. do not trust a single resolution.
for r in (0.5, 0.8, 1.0, 1.2, 1.5, 2.0):
    comms, q = gtia(personas, features, weights, resolution=r)
    print(r, len(comms), round(q, 4))

Seed the layout and the clustering if the output is going anywhere someone else will read, so the numbers are re-derivable rather than asserted. The graph on this page is generated by _gen_gtia.py, which is this with the real weights in it.


Prior Art

Hillier & Hanson (1984) - Space Syntaxnearest neighbour
Blondel et al. (2008) - Louvain community detectionengine
Newman & Girvan (2004) - modularityfoundation
Barber (2007) - bipartite modularityprojection basis
Dawes & Ostwald (2013) - architectural graph analysisadjacent field
Persona-feature matrices (practitioner)flat scoring

Space Syntax is the closest thing that exists: it converts building and street plans into graphs and derives accessibility measures from them. It analyses physical space that already exists, in the opposite direction. Persona-by-feature matrices are standard practice in product work and use the same two axes, but stop at a weighted score per feature. Nobody appears to have run community detection on the result and treated the communities as the screens. Searching for the name and for the specific construction returns nothing.


Status

Method and reference implementationworking
Applied to shipped productssix passes
Interest weights from measured usage dataone case
Interest weights from estimatesfour cases
Controlled comparison against top-down IAnot run
Write-upthis page

The honest limitation: a pass run on estimated weights is a structured hypothesis, not a finding, and most of these were. The graph faithfully reports whatever went into it, which means wrong weights produce a confidently wrong architecture. That failure mode is at least visible and correctable: you can go back and fix a number once real usage data exists. Wrong intuition is invisible until the product has already been built on top of it. No controlled study has been run comparing a GTIA-derived architecture against a top-down one for the same product, and without that, the claim here is limited to what the cases above actually show.


PING
Whether a phone can do what a shop full of instruments does

A professional diagnostic bay is not one machine. It is a scan tool, a vibration analyser, a thermal camera, a laser thermometer, a sound scope, an alternator tester, a borescope and a stack of gauges, each a separate instrument, each reading one physical signal well. The equipment is expensive, but the expense is not the interesting part. What matters is that every one of those instruments measures something a modern phone can also measure.

A phone shipped in 2025 carries ten to fifteen sensors: accelerometer, gyroscope, magnetometer, barometer, three microphones, multi-camera with macro focus, a laser rangefinder for autofocus, a spectral sensor, a flicker sensor, and on some models a thermometer and a time-of-flight depth camera. The question this project is a field test of: if the signals are already in your pocket, what exactly is the shop buying?

Key Results

The instruments and the phone read the same physics. A professional alternator tester works by measuring ripple frequency on the electrical system. A phone's flicker sensor exists to detect light pulsing at 50 or 60Hz so the camera can avoid banding, and an alternator's ripple modulates the headlights. A dragging brake caliper is found by scanning rotor temperatures and looking for the odd one out, which is a thermometer pointed at four places. A dead cylinder shows up as one cool exhaust runner, same instrument, different target. In each case the shop tool is not doing something exotic. It is one sensor, pointed carefully, with software that knows what the number means.

The gap is composition, not hardware. The shop's real advantage is that it has one instrument per signal and a technician who knows which to reach for. The phone has most of the signals in a single package and no idea what to do with them. That reframes the build: the scarce resource was never the sensor, it was the software that composes several weak readings into one conclusion. PING was originally designed around five sensors on a 2018 handset. The audit of what a current phone actually exposes found at least ten more that were sitting unused.

Capability is a tier, and it degrades gracefully. Rather than requiring a flagship, the app enumerates what this specific phone has on first launch and classifies it. The tiers are not marketing segments; they are how much of the diagnostic surface is reachable with the sensors present.

TierRequiresCoverage
Coreaccelerometer, gyroscope, microphone, GPS~60%
Standard+ barometer, magnetometer, high sampling rate~80%
Advanced+ laser rangefinder or time-of-flight, spectral~90%
Full+ thermometer, macro camera100%

A budget phone with four sensors still reaches about sixty percent of the diagnostic value. That shape is the point: no single missing sensor collapses the tool, because the conclusions are composed from several signals rather than read off one. It is the same structure as the composition law above, applied to instruments instead of dimensions: the product degrades as pieces go missing, and only hits zero when a required dimension does.


Where It Does Not Work

The honest half. Several of the most interesting sensors are reachable in principle and not in practice, and the reasons are worth stating because they are the actual constraint rather than a physics one.

Flicker sensor, for alternator rippleAPI too coarse
Samsung thermometer, for rotor and runner tempsno public API
Spectral sensor, for fluid conditionvendor HAL only
Laser rangefinder, for ride height and treadmetadata, undocumented
Accelerometer and microphone, for vibration and audioworking
Camera, for VIN, tread depth, fluid colourworking

The flicker case is the clearest example. The physics is sound and the sensor is present, but the public camera API reports only 50Hz, 60Hz or none. It will not give a frequency, and ripple diagnosis needs the frequency. The hardware can do it; the interface will not say. The Samsung thermometer is not registered as a standard Android sensor at all, so an app can read temperatures the user already took and cannot take one itself. Neither is a limit of what a phone can sense. Both are limits of what a phone will admit to sensing, which is a different and more annoying problem.


Status

Sensor landscape audit, 2024-2026 devicescomplete
Vibration, audio, speed, camera diagnosticsshipping
Capability tiering and graceful degradationspecified
Vendor-gated sensorsblocked on access
Side-by-side against professional instrumentsnot run

The claim that a phone reaches a given percentage of diagnostic value is an architectural estimate from which tests each sensor set enables, not a measured agreement rate against professional equipment. The test that would settle it - same fault, same vehicle, phone against the instrument that is meant to find it - has not been run. Until it is, this is a well-specified hypothesis with a working subset underneath it rather than a result.


SCRVNR
Measuring a writing voice precisely enough to detect its absence

Writing voice is normally described rather than measured. Style guides say things like “direct, not stuffy” and leave the reader to work out what that means in practice, which is fine for a person and useless for a system that has to check its own output. If a voice can be stated as numbers, two things become possible that were not: a draft can be scored rather than argued about, and text claiming to be in that voice can be tested.

The corpus is 42,363 messages and 4,503,130 words: one person's own side of several years of conversations with AI systems, plus text messages and a few other sources. That base is convenient for a reason worth naming. It is prose typed at volume, unedited, across every subject the writer actually deals with, which is hard to get any other way.

Key Results

The corpus of human writing was contaminated with machine writing, and the fingerprint is what found it. A body of text assembled as “things this person wrote” contained 11,363 em-dashes. The author does not use them; he uses spaced hyphens. The em-dashes had arrived by the obvious route, pasted model output and copied generated documents sitting inside messages that were otherwise his. Scoring every message by em-dash density flagged 2,044 of them, 4.8% of the corpus, and down-weighted the worst rather than deleting them. This is the load-bearing result: the marker is reliable enough to locate machine prose inside a human corpus, which is a harder problem than classifying a document whole.

Register is a dial with a measurable position, not a vibe. The same author's contraction rate runs from 29% in technical writing to about 75% when arguing. Mean sentence length runs from roughly 25 words in technical prose to 5 in casual messages. These are not different people and not different styles chosen deliberately. They are one voice at different settings, and the settings are stable enough to identify. Note the last column, which does not vary: the punctuation habit holds across every register while everything else moves.

RegisterContractionsMean sentenceEm-dashes
Technical29%25 wordsnone
Professional41%15 wordsnone
Investigative39%16 wordsrare
Personal65%13 wordsrare
Argumentative75%20 wordsnone
Casual74%5 wordsnone

The strongest discriminator is punctuation, not vocabulary. The intuition is that a voice lives in word choice. It mostly does not. Vocabulary overlaps heavily between any two fluent writers on the same subject, and a model asked to write like someone will match the vocabulary first. Punctuation habits are close to unconscious and nobody thinks to imitate them. The em-dash gap between this author and a language model writing in his register is about 26 per thousand words, which is not a subtle difference. It is the difference between roughly zero and roughly twenty.


Tested In The Wild

A fingerprint that only confirms itself on its own corpus is not worth much. The useful test is whether it catches text that was written to pass as the voice and was believed to have passed.

Run against this website: the research page carried 19.9 em-dashes per thousand words, about fifty times the author's native rate, with every section written by a model imitating the section next to it. Run against the thirty public repository descriptions for the infrastructure documented on this site: 28 of 30 were off-voice at 15.8 per thousand, and the hyphen rate across all of them was 0.0 - the substitution was total, not partial. None of it had been noticed by reading. All of it was obvious in one pass of counting.

The prose in question had been read, approved and shipped. That is the result worth keeping: the signal survives review by someone who knows the voice well, because the thing it measures is not something readers consciously attend to.


Status

Corpus, tagging, feature extractioncomplete
Decontamination passcomplete
Per-register quantitative profilecomplete
Detection applied to live texttwo passes
Blind evaluationnot run
Second authornot attempted

Three limitations, stated rather than buried. The corpus is one person's messages to AI systems, which is a large and natural sample but not the whole of how anyone writes; letters and long-form drafting are underrepresented. Register labels were assigned by classifier and hand-corrected, so the boundaries between them are partly a modelling choice rather than a discovered fact. And the detection results above were not blind: the same person ran the detector and read the output, and the strong result reported is a single punctuation feature rather than the full profile. What has been shown is that one feature separates cleanly on one author. Whether the method generalises to a second writer has not been tested, and until it is, this is a fingerprint rather than a science.