Source-linked AI summary
Animarium: an open, reproducible pipeline for synthetic populations of Italian cities, from ISTAT sources to open data (Tech Report v1)
Mirko Degli Esposti
TL;DR
The paper addresses how to construct open, reproducible synthetic populations from published aggregates while keeping each attribute’s provenance and limits explicit. It presents a four-ring pipeline for eleven Italian municipalities, reports byte-identical regeneration of 1,814,317 individuals in about 33 minutes, and releases the results through a citable viewer and open dataset.
Problem
Constructing synthetic populations from published aggregates requires assigning each attribute a declared source and preserving reproducibility and interpretability across downstream layers.
Method
The pipeline combines a maximum-entropy demographic model, whole-vector survey donation, geographic and address placement, census-constrained households, and declared derivations for readable personas.
Results
44 comparisons produced 44 identical files for 1,814,317 individuals in about 33 minutes on the reference machine.
Takeaways & Limitations
Animarium makes synthetic-population numbers comparable and citable by linking filtered values to whole-city markers and available census counts.
Takeaways & Limitations
Reproduction requires manually checking out the stated commit and manually requesting AVQ microdata; rings 2–4 are not fully script-acquirable.
Abstract
from arXiv · showhide
Synthetic populations of eleven Italian municipalities (1,814,317 individuals in 887,937 households) generated from published aggregates alone: ISTAT census and register tables, census-section counts, the national civic-address register, public-use survey microdata, and six municipal open-data portals, every source certified in a registry with licence, fingerprint and declared affordances. Four rings give every attribute a declared place: a maximum-entropy joint model of up to nine demographic attributes; whole-vector donation of twenty-three attitudinal and health variables from survey respondents; placement to census section, single year of age and address; and households constrained by the census size distribution per section. Every downstream layer (detailed titles, work, names, biographies) is a declared derivation adding no information. The pipeline is deterministic to the byte: regenerating all eleven municipalities from the tagged commit reproduces every file of every ring bit for bit, in 33 minutes on one workstation. Populations are released in a public regime enforced in the data (no names, no addresses, coordinates randomised within census section), browsable in Animarium, a dependency-free web viewer where every number carries its comparison and every view is a citable URL, and downloadable as an open dataset. The report documents the architecture, the sources and their certification, the reproducibility and quality measurements at the release tag, the viewer, and the narrative layer that renders records into personas for LLM-driven simulation, with the platform's controllability demonstrated in companion experiments, and validation explicitly out of scope.
Front matter — version v1 (26 August 2026)
Animarium is released as an open dataset, codebase, and citable viewer, with records explicitly separating aggregate-based reality from synthetic or derived components. The report is a reproducibility record whose claims are bounded by pinned dependencies, manual microdata acquisition, and validation being out of scope.
- Release and provenance: The public release includes eleven municipal population files, an open dataset, static viewer, source fingerprints, code snapshots, and persistent identifiers.The viewer requires no account or key, and released data carry CC-BY-4.0 attribution.
- Reproducibility boundary: The report defines reproducibility as byte-identical regeneration from registered sources, a tagged commit, and the solver repository at a specified commit.The solver dependency is discovered through the filesystem rather than verified by a package pin, so reproduction requires a manual checkout.
- Provenance: Each released record has three provenances: real published aggregates, a synthetic sample or donated survey vector, and deterministic derived renderings.The aggregate counts and survey response vectors retain declared provenance, while names, titles, sectors, and biographies add no information.
- Release and provenance: The population file is read-only after generation, and downstream consumers join derived layers on uid rather than modifying the records.This preserves the generated artifact while allowing separate rendering layers to be regenerated independently.
- Scope: The report is a release and reproducibility document, not a methods paper or validation study of LLM-driven synthetic populations.Rings 2–4 also depend on public-use survey microdata obtained through a manual request, and Part V is described as work in progress.
I.0 The pipeline, as run
The municipality pipeline uses three data doors, then executes a deterministic chain that builds constraints, fits a population, enriches it, and publishes the resulting artifacts. A full fleet regeneration produces 44 files for eleven municipalities in 33 minutes, while solver complexity follows state-space size rather than resident count.
- Data acquisition: Three doors provide municipal ISTAT tables, census-section territorial bases, and optional municipal open data at progressively finer geographic granularity.The municipal door chiefly supplies sub-municipal citizenship by country; when absent, the tier system falls back to census-only information.
- Execution chain: The execution chain registers a municipality, fetches source tables, builds sections and constraints, fits the model, assigns survey attributes, and enriches the population.The documented commands include separate handling for articulated municipalities and named K6C or K9C fit levels.
- Reproducibility: 33 minutes and 44 output files cover regeneration of all eleven municipalities on one workstation, with byte-identical results across runs.The fleet-wide script is rigenera.sh, which runs the complete chain rather than only the fitting stage.
- Execution chain: The municipal preparer validates year coverage and writes constraint blocks, whereas the assembler combines them with zone blocks, declared zeros, and the floor before fitting.This division separates source validation and municipal preparation from assembly of the final constraint system.
- Test run: 54 s fits Milano’s 1,451,520-state constraint problem, while 0.17 s fits Mantova’s 5,376-state problem at comparable exact-fit error.For the solver, the number of zones determines problem size more directly than the number of residents.
I.1 Design principles
The design assigns each attribute to the stage where its measured structure can be represented, normalizes quality metrics against appropriate nulls, and preserves artifacts and corrections rather than silently rewriting them. These principles make modeling choices auditable and reproducibility testable.
- Declared attribute placement: Every attribute is placed either in the joint model or in a downstream derivation according to measured conditional dependence.Education remains in the joint model, while sector and position are derived downstream conditioned on sex and municipality.
- Declared attribute placement: TVD is the placement criterion, and support-partition checks reject comparisons across mismatched supports that can otherwise yield plausible but meaningless values.The criterion is implemented in the municipality-independent gsp.tvd library.
- Declared attribute placement: TVD 0.149–0.512 across municipalities shows education dominates sex for ATECO composition, leading sector × position to be drawn downstream rather than placed in the joint model.The joint-versus-product distance is 0.138–0.166 across five territories, while education’s unavailable municipal cross is declared as a limit.
- Null-normalized measurement: Quality metrics are normalized against null behavior because raw errors and distances depend on the geometry of cells, sections, and partitions.A town with 16% raw constraint error can still be better than its 24% sampling floor.
- Auditability and reproducibility: The population is read-only, corrections remain dated annotations, predictions are recorded before measurement, and refactoring requires byte-identical regenerated files.The same standard is applied to prose, measurements, and code so that changes remain inspectable.
I.2 Ring 1 — the joint model
Ring 1 fits a maximum-entropy distribution over demographic states under hard register totals and soft census constraints, with templates and source universes determining the available resolution. Explicit zeros, partial blocks, and exact margin checks govern what the model may generate and how its results are measured.
- Model and attributes: Ring 1 generates a maximum-entropy joint distribution over up to nine demographic attributes for each municipality.The attributes include geography, sex, age, marital status, citizenship, education, occupational condition, migratory background, and parents’ origin.
- Model and attributes: K9C applies to municipalities with declared sub-municipal articulation, while K6C uses six attributes where corresponding sub-municipal source tables are unavailable.The level reflects source availability, and viewer denominators differ across levels.
- Constraints and zeros: At K9C, sixteen constraint blocks include eleven complete blocks and five partial blocks, whose unlisted cells remain free rather than forbidden.The distinction between partial information and explicit zero constraints is central to interpreting census tables.
- Constraints and zeros: Explicit zeros must be distinguished from cells outside a table’s declared universe, because confusing the two can create impossible demographic combinations or prevent generation.The source tables display the same missing value in both cases, so the universe declaration carries the distinction.
- Constraints and zeros: The seed-free maximum-entropy construction avoids seed-sample zero-cell failures by assigning unconstrained cells the most even compatible mass.This differs from seed-based methods whose missing combinations cannot recover mass through iterative fitting.
- Fit and margins: Register totals are hard margins, census tables are soft conditional constraints, and the register–census base agrees exactly across 2,821 age-by-sex cells.At Brescia, section-level five-year age-by-sex aggregates also match the register with zero discrepancy.
- Fit and margins: Eleven municipalities fit exactly at MRE 2.4·10^-? to 5.0·10^-? in 0.17 s to 182 s, with fitting time driven by |X| = 161,280 × zones rather than population.No fleet municipality required PCD at release, and the solver’s documented method is exact dual solution where feasible with persistent contrastive divergence otherwise.
I.3 Ring 2 — donated attributes and the country of citizenship
Ring 2 donates attitudinal and health variables as complete survey-response vectors, while citizenship is fitted to census margins and assigned geographic resolution according to available municipal data. The section also states the placement and household constraints that bound later rings, alongside declared limitations in finer geography and derived representations.
- Donated attributes: Twenty-three AVQ variables are donated as complete respondent vectors rather than modelled individually.Pools contain 4,629 Emilia-Romagna donors and 8,111 Lombardy donors from stacked 2023–24 survey years, with hierarchical cell collapse when needed.
- Donated attributes: Whole-vector donation preserves inter-variable correlations by construction, avoiding visibly impossible synthetic respondents from independently sampled variables.The method treats joint recognisability as more important than matching marginals separately.
- Donated attributes: The donated vector contains no sub-regional geography, so spatial differences in trust reflect group composition rather than neighbourhood-specific effects.The viewer states this limitation on spatially filtered panels, and effective sample size is evaluated with Kish’s measure on each variable’s universe.
- Country of citizenship: Citizenship uses census country-by-sex and geographic foreigner counts as fitting margins, using local tables for shape rather than incompatible levels.The construction therefore retains census consistency even when municipal register dates or levels differ from census data.
- Country of citizenship: 9–88 iterations bring citizenship fitting to ~10^-11, while proportional section weights ensure no foreigner is placed where the census counts none.Coverage is complete because geographic allocation follows census foreigner counts.
- Country of citizenship: Municipal open-data availability determines citizenship tier: tier 0 is census-only, tiers 1–2 use neighbourhood or zone tables, and tier 3 reaches sections.Tier 0 reproduced no-tier behaviour on Modena at total-variation distance 0.0023 and was run end to end on both test municipalities.
- Placement and households: Ring 3 allocates individuals to sections, exact ages and addresses below the constraint resolution, with mean absolute section error of 0.72–1.57 versus ~9.6 for multinomial draws.Section totals still match the census exactly; address coverage depends on each municipality’s ANNCSU georeferencing.
- Placement and households: Within zones, education, occupational condition and migratory background are spread independently of section given sex, age-3 and citizenship, discarding measured section-level residual structure.The reported median net residual is ~0.022 for Italians and ~0.018 for foreigners, with refinement queued for the next regeneration.
I.7 Publication regimes and the disclosure argument
The paper separates release regimes by disclosure risk and enforces the public regime in the data, arguing that synthetic records contain no personal datum and that addresses and names identify no one.
- Publication regimes: The public-use regime is the only downloadable product: it omits names, streets, civic numbers, quartieri, uids, and donor ids, while randomising coordinates within census sections.A permissive export requires an explicit act and warning; protected and research/narrative regimes remain distinct.
- Disclosure argument: Simulation from published aggregates never had a link to an individual, so there is no person to re-identify by construction.The paper distinguishes simulation from anonymisation, which must demonstrate that an existing link has been broken.
- Disclosure argument: The only real vector in a synthetic record is a donated 23-response AVQ vector, already protected in ISTAT’s public-use release and replicated across synthetic individuals.Mean donor reuse ranges from 25–84× by municipality, preventing any combination from being unique to one synthetic record.
- Disclosure argument: Civic assignment is arbitrary within a census section, so removing addresses or randomising coordinates loses no analytic information under the public regime.Mantova’s largely non-georeferenced addresses provide a stress test for a section-geometry-only public bundle.
- Names and interpretation: 301 first names and 638 surnames make collisions normal: on Castenaso, 94.4 % of people share their full name with someone else.Names are labels for reading rather than keys for finding, and derived narrative components are explicitly presented as non-identifying.
II.1 The registry as a method
The registry is an executable authority for source meaning, legal reuse, provenance, and reproducibility, not merely documentation. Normalisers preserve immutable raw files while enforcing declared affordances and exposing metadata anomalies.
- Registry design: Thirty-nine registry entries record issuing body, universe, temporal reference, licence, storage, consuming code, and permitted uses.The registry also declares what a source may not be used for, making restrictions machine-relevant.
- Declared affordances: Positive and negative affordances are both controlled-vocabulary declarations, so normalisers can enforce distinctions such as temporal comparability and address semantics.The registry forbids treating register and census dates as a year apart and distinguishes citizenship area from country.
- Provenance: Raw files remain immutable, while every decoding, reshaping, and filtering operation is versioned code recorded by the registry entry.Replacing a file means re-fetching and re-fingerprinting it rather than patching the downloaded artifact.
- Provenance: SHA-256 fingerprints cover both redistributable and restricted files, allowing local verification even when a fresh clone contains only the declaration.Storage level is explicit: small files live in git, while larger or restricted sources are acquired separately and checked by hash.
- Auditing: The --copertura and --pubblico audits both pass at the release tag, with licences resolved or explicitly marked as presumed.A fresh-clone state distinguishes missing files from changed files and exposed an inconsistent storage declaration during testing.
- Source certification: The source families span ISTAT SDMX tables, census sections, ANNCSU addresses, AVQ microdata, and municipal open data, each with declared legal and temporal scope.These entries specify which layers of the pipeline they feed rather than treating all inputs as interchangeable.
II.3 Eighteen normalisers, and what running them found
Eighteen normalisers convert heterogeneous source files into declared, traceable inputs and reveal errors that documentation alone would miss. The resulting column provenance records which source and ring determine each released attribute.
- Normalisers and findings: Eighteen distinct normalisers are registered by source form, and their execution surfaced anomalies that documentation had not revealed.The normalisers are one per source form rather than one per source, covering extracts, workbooks, microdata, matrices, codebooks, and lists.
- Normalisers and findings: ISTAT’s DICA_CARATT_ATTL uses different total codes across dimensions, so assuming one universal filter can incorrectly return zero rows.The codes include ALL, 99, 0010, 9, and TOTAL depending on the dimension.
- Normalisers and findings: Modena’s catalogue misdescribes resident name stock as newborn-name data, while the file extends through 2024 and contains service columns including a repeated centroid.The anomaly demonstrates why certification must inspect the file rather than trust catalogue descriptions.
- Normalisers and findings: Parma’s Ncomp values reveal collective households, but its extract uses a shorter inherited classification whose mapping is inferred and partly conjectural.The inferred mapping is solid for three codes covering 90 % of records and conjectural for the remainder.
- Temporal semantics: The registry treats register date 1 January N and census date 31 December N−1 as the same instant and forbids the tempting direct comparison.Every source entry declares temporal reference and year used, preventing date labels from overriding source meaning.
- From source to column: Column provenance links released attributes to registry entries through their rings, while derived titles, sectors, biographies, and names add no information and can be omitted publicly.The country-of-citizenship tier varies by municipality, from census-only inputs to section-level register data, with older vintages explicitly retained as limitations.
- Open items: The v1.0 pipeline deliberately leaves the SDMX dataflow catalogue and DSD structure cache unregistered, although the latter is load-bearing for decoding tables.A manifest declaring endpoint, acquisition date, and dataflow versions is planned for v1.1.
III.1 Environment, determinism, and what “reproducible” means here
Here, reproducibility means byte-identical regeneration from registered sources, a tagged GSP commit, and a manually selected solver commit—not correctness of the generated populations. The claim is bounded by dependency handling and access to AVQ microdata.
- Meaning of reproducible: The reproducibility claim is that every population and ring regenerates byte for byte from registered sources and pinned repository commits.The paper explicitly separates sameness across runs from whether the populations are substantively right.
- Boundaries: The solver dependency is discovered through the filesystem rather than verified by version pinning, so reproduction requires checking out the stated solver commit manually.Packaging the solver as a pinned dependency is deferred to v1.1.
- Determinism: Every random draw is explicitly seeded: ring 1 uses seeds 123 and 42, rings 2–3 default to 42, and ring 4 derives its seed from the municipality code.The ring-1 fit itself is deterministic; randomness enters its warm start and final sampling.
- Determinism: The early fixed-seed policy could couple municipalities if runs share one process, making it weaker than municipality-derived seeding.The code records this historical coexistence of seed policies and schedules a change.
- Byte identity: Timestamp-free population files support hashing, while Animarium JSON timestamps are compared modulo their generated-time field.The version binding hashes Parquet files only because those files do not embed generation time.
III.2 The regeneration test at report-v1.0-rc1
The report-v1.0-rc1 regeneration test reran all eleven municipalities and compared every ring product byte for byte, confirming end-to-end determinism on the reference machine while documenting post-tag divergence and portability limits.
- Release-tag outcome: The eleven municipality chains all produced identical outputs, with total runtimes ranging from 16 seconds for Castenaso to 395 seconds for Bologna.The table reports municipality codes, constraint levels, chain times, and identical-file outcomes.
- Release-tag outcome: 44 comparisons yielded 44 identical files for 1,814,317 individuals regenerated in about 33 minutes on one workstation.The maximum-entropy fit accounted for 15–55% of the runtime; the remainder was spent in the three enrichment rings.
- Scope and qualification: The byte-identity claim applies to the tagged commit: current master reproduces rings 1–3 identically but ring 4 differs after two post-tag patches.Those patches shift the random sequence for ring 4 across municipalities.
- What the test establishes: The rebuilt bundle reproduced all eleven pop.parquet files byte-identically, while only manifest and reference timestamps differed.Each pop.parquet hash is recorded in the version-binding table for checking the public Zenodo dataset.
- What the test establishes: The test showed deterministic execution through the accelerated solver and independence from municipality order and machine state on the tested reference setup.The archived populations compared were exactly those served by the online viewer.
- Scope and qualification: Cross-machine byte identity is not established because floating-point reductions and NumPy generator behavior may vary across compilers, CPU widths, or versions.Expected differences should generally be confined to ring 1 and remain invisible at aggregate resolution.
III.3 Ring-by-ring quality
Ring-by-ring diagnostics separate exact fitting from sampling variation and expose where resolution, donor reuse, and spatial assignment constrain interpretation. Across the release fleet, aggregate constraints were met closely or exactly, with deviations localized to expected small-cell and sampling effects.
- Ring 1 — the fit: All eleven ring-1 fits converged exactly, with MRE between 2.4·10^-5 and 5.0·10^-5, and none required PCD.Fit time followed state-space size, |X| = 161,280 × zones, rather than population.
- Ring 1 — the sample: Observed constraint error was 10–11% above the sampling floor, indicating that sampling explained almost all deviation while z-scores localized the residue.The floor is computed for a perfectly fitted distribution and is not the same quantity as sample MRE.
- Ring 1 — the sample: Observed MRE ranged from 4 to 16%, but raw errors were not comparable across configurations; Castenaso measured 16% against a 24% floor, while Forlì’s floor reached 3,189%.Forlì’s normalized |z| distribution remained unremarkable, with mean 0.85 and standard deviation 1.09.
- Ring 1 — the sample: Bologna had the largest mixing inflation, with sd(z) = 1.391 and |z|max = 36 on an expectation-1.0 cell, while higher-expectation cells stayed within |z| ≲ 4.No hard zero was violated; the inflation concentrated on near-empty cells.
- Donor assignment: The AVQ donor signature reduced Modena’s effective donor count from 4,617 donors to 4,161 distinct informational signatures because some donors shared identical 21-tuples.The signature count is therefore the appropriate n_eff basis.
- Donor assignment: 99.2% of Modena signatures served one sex, 70.1% one macro-age, and 45.3% one education class; 15.4% were confined to the full conditioning cell.Only 9.4% of individuals were served by those full-cell signatures; the remainder used hierarchical collapse.
- Spatial placement: Section-level mean absolute error was 0.72–1.57 individuals against 9.6 for a multinomial baseline, with section totals matching the census exactly.The sections averaged 66–175 residents.
- Spatial placement: Re-aggregation across five-year age classes produced mean absolute residuals of 2.3–5.7 individuals per section, concentrated at the 0–8 / 9–14 boundary.The report treats this as a declared resolution limit rather than an unmeasured discrepancy.
III.4 Assumptions and resolution limits, in one place
The release makes assumptions explicit wherever source resolution or unavailable cross-tabulations require conditional independence, and reports measured costs rather than presenting derived structure as observed fact.
- Declared assumptions: Every attribute outside the constraint set enters through a declared conditional-independence assumption with a named ring and measured cost where available.The assumptions are numbered and tied to the pipeline’s stages.
- Resolution limits: Address assignment is uniform over a section’s civic numbers, and individual-level assignment allows spouses to receive different civic numbers.Household-level address assignment is identified as a prerequisite for building-level work.
- Measured costs: AVQ donations carry no geography, so all sub-municipal AVQ variation is compositional; the associated band inflation ranges from ×2.2 to ×20.1.The viewer prints this assumption on spatially filtered AVQ panels.
- Measured costs: Hierarchical donor collapse affects 1.5–3.1% of individuals, with 96.9–98.5% served by full conditioning cells; affected cells are systematically those below 20 donors and all elementare_o_meno.The report withdraws an earlier 15.3% estimate because donor collisions contaminated it.
- Resolution limits: Within five-year age bins, single-year age follows the municipal distribution, leaving the within-bin shape unconstrained and producing a concordant youngward lean across two cities.The first class is positive and the last negative in ten signs, with p ≤ 0.002.
- Resolution limits: Education geography is constrained at five levels and applied to six-level population counts, so first-cycle and postgraduate titles share tertiary geography within zones.Postgraduate concentration within a neighbourhood cannot be represented separately.
- Resolution limits: The occupational zone block covers employed people only, leaving unemployment spatially unconstrained because the source does not separate the non-employed categories.Its mass of 0.47 is the block’s universe, not a defect.
- Resolution limits: Foreign residents share identical zone distributions within each 0–14, 15–64, or 65+ macro-age class.The model cannot represent finer age variation in foreign residents’ geography beyond those three classes.
III.5 Open points carried into v1.0
Open points are registered rather than silently corrected: queued refinements, withdrawn claims, and post-tag changes preserve an auditable boundary between the released artifact and future work.
- Queued changes: Citizenship-aware AVQ conditioning is analyzed and patched in draft but withheld pending codebook identification and concern that language-selected foreign respondents overstate trust estimates.The observed institutional-trust effect was about one point on a ten-point scale and was not found for AMBIENTE or interpersonal FIDUCIA.
- Queued changes: Section-level migratory-background refinement through census EM columns is queued for the next regeneration cycle.The registry patch extending the source’s usable-per field is already written.
- Post-tag divergence: Two ring-4 patches changed outputs after the release tag by skipping fictitious convivenza sections and addressing per-nucleus O(n²) matching costs.Skipping the section shifts the random sequence for every subsequent section, so all municipalities with such sections receive changed ring-4 outputs.
- Post-tag divergence: The binding table’s byte-identity claim remains valid for the tagged commit, while current master reproduces rings 1–3 identically and ring 4 differently.The fleet was not regenerated solely for these patches because regeneration invalidates donor_id and every measurement.
- Withdrawn claims: The report records withdrawn claims, including whole-population n_eff and the mistaken distinction between quartiere and zona, with dated annotations.Per-variable-universe n_eff is retained as the correct object.
- Viewer boundaries: Animarium uses a hand-written HTML page without a framework, build step, or bundler, loading DuckDB-WASM from a CDN and reading Parquet through HTTP range requests.The static design supports local serving and reproducibility of the viewer artifact.
- Viewer boundaries: The viewer deliberately excludes detailed education titles and sector × position pairs because they are derivations reserved for persona and narrativo regimes.It also does not present sub-municipal AVQ geography as information because AVQ vectors carry no geography by construction.
IV.2 The public bundle
The public bundle packages reproducible municipal populations with static, citable access and privacy protections enforced in the released data. Its narrative layer is explicitly separated from the population-generation pipeline and remains work in progress.
- Bundle and deployment: Eleven municipalities are distributed as an index, per-municipality Parquet files, manifests, and census-reference JSON, rebuilt in one command.The bundle is approximately 35 MB.
- Public regime: The public regime removes names and civic-address fields while randomising coordinates within census sections, and is enforced by the export function rather than a banner.The public output preserves section-level analytic information while preventing civic-number disclosure.
- Bundle and deployment: Viewer state is encoded in the URL query string and bound to the report version and municipality Parquet hash, making views citable.The recommended citation includes the URL, report version, and SHA-256 prefix.
- Bundle and deployment: Static HTTPS hosting, HTTP range requests, and unrestricted file size are sufficient; no server-side runtime, database, or build step is required.A range-aware local server is included for hosts that meet these requirements.
- Narrative layer: Narrative calibration is an open research programme, and the reported experiments concern platform controllability rather than validation of synthetic populations.The narrative layer is expected to change substantially in later report versions.
- Narrative layer: The narrative layer adds structured expansions and LLM prose only after the constrained profile, while the LLM renders a statistically generated person rather than generating one.Persona and narrativo regimes differ in whether names, addresses, and prose are added.
V.2 LLM-driven simulation as evidence of use, not as validation
The companion experiments use Animarium outputs to test whether LLM agents respond controllably to synthetic profiles and narratives, not to validate the populations themselves. Across studies, narrative content transmits imposed dispositions, while absolute response levels vary by model.
- Scope: Two studies demonstrate that the platform supports controlled, replicated, pre-registered experiments on LLM agents rather than validating the synthetic populations.Their substantive findings belong to the companion papers.
- SIVE and Brescia experiments: SIVE found controllability across a battery when trust levels were imposed on agents, with compression of the imposed scale.Its protocol used pre-registered criteria C1–C7 and a within-subjects design.
- SIVE and Brescia experiments: The Brescia study separates profile and story effects through conditions combining a profile with latent-level, neutral, or no story.Its story-generation process also introduced a measured correction loop and a monotony detector.
- Measured findings: 40 of 40 paired B−C responses were negative in LOW, while the profile alone produced clones and neutral stories added a +0.30 positive-valence intercept.The neutral-story effect was independently observed by blind human judges and models.
- Measured findings: Across DeepSeek, Claude Haiku 4.5, and GPT-4o-mini, the gain varied only from 0.52 to 0.59, but C levels spanned 1.48 points.Differences and orderings transport across models, whereas absolute levels do not.
- Measured findings: Categorical responses followed measured stereotypes after the n = 600 study, while an n = 120 age signal was rejected as thin-cell noise.The ground-state design provides reference points for profile effects.
V.3 Intended uses, and the two warnings that travel with them
The released populations support compositional comparisons, stratified communication pre-testing, and teaching when assumptions remain explicit. They do not support interpreting synthetic attitudinal geography, real identities or addresses, or absolute LLM-agent levels as observed facts.
- Intended uses: The viewer supports compositional comparison across municipalities and zones with explicitly honest uncertainty.This is identified as the viewer’s native use.
- Intended uses: Stratified synthetic audiences support pre-testing institutional communication, with known ground truth unavailable from convenience panels.Teaching is also supported when the population’s declared assumptions are central.
- Warnings: Attitudinal variables must not be read as sub-municipal geographic information, and records must not be treated as real addresses or real people.The synthetic individual is sampled from distributions rather than corresponding to an individual record.
- Warnings: LLM-agent absolute levels are not portable across models: the measured spread is 1.48 points, although differences and orderings transport.Agents sharing a donor signature remain one piece of evidence despite different names.
- Warnings: Interpretation risk is mitigated through card banners, capped on-demand narratives, and sampling-API warnings at resolution boundaries.Validation remains outside this platform’s burden of proof.
- Declared provenance: The public data separate generated demographic records, donated AVQ vectors, section-level placement, households, and derived narrative fields by declared regime.Names, titles, sectors, and biographies are deterministic derived layers rather than stored population facts.
A.4 The constraint set
The constraint set combines complete and partial demographic blocks across K9C and K6C models, with explicit state-space structure and documented zero cells. Some logically impossible combinations remain unenforced and are queued for repair.
- State spaces: K9C models 161,280 × n_zone states, while K6C models 5,376 states without zone, background, or parents’ origin.The Mantova K6C fit used m = 263 constraints, MRE 3.4·10^-? and 0.17 s as reported.
- Constraint blocks: K9C contains sixteen blocks, including ten municipal blocks and five documented zone blocks; K6C contains six named blocks.The zone blocks cover age-sex, macro-age-sex-citizenship, education, employment, and migratory background.
- Zeros and complements: Zone-level non-employment geography is unconstrained by observed data, so the corresponding condition block is not closed within the template.This is an explicit limitation of the constraint set.
- Zeros and complements: Partial blocks leave unlisted cells free, while explicit zeros encode logically impossible or definitionally excluded combinations.Age × education and age × condition contribute 26 construction-imposed impossible pairs, with six additional citizenship × background exclusions in K9C.
- Zeros and complements: Three of roughly 970,000 released individuals fall into 26 age-related impossible pairs because those exclusions are not currently enforced.Adding those exclusions as zero constraints is queued as a repair.