# TLA-VIS — plant visualisation grammar

**Status:** 1.0.0 — ratified, all 330 terms published  
**Licence:** Vocabulary + specification **CC-BY-4.0** · reference implementation **Apache-2.0** · "TLA-VIS" name and conformance mark retained  
**Date:** 2026-09-07  
**Generated by:** `npm run foundation:tla-vis` → `public/foundation-wing/tla-vis-vocabulary.json`  
**Related:** [`PLANT_CONDITION_GRAMMAR.md`](./PLANT_CONDITION_GRAMMAR.md) · [`GEOMETRY_IMPROVEMENT.md`](./GEOMETRY_IMPROVEMENT.md)

---

## Is this a real thing?

Yes, and the gap is genuine. Nobody owns this space.

| Existing standard | Covers | Licence | Why it does not solve this |
|---|---|---|---|
| **Plant Ontology (PO)** | Plant anatomy, morphology, development stages | CC-BY-4.0 | Built for genomics and phenotyping. Describes a *leaf primordium* for gene annotation, not how to render a crown. |
| **Darwin Core (TDWG)** | Occurrence, specimen, taxon records | CC-BY | Where a plant was seen, not what it looks like. |
| **TRY / AusTraits** | Measured functional traits | CC-BY variants | Numbers per taxon. No form vocabulary, no individual state. |
| **glTF / OpenUSD** | Geometry and scene transport | Royalty-free / permissive | Taxon-agnostic. They carry a mesh; they do not know what a phyllode is. |
| **MaterialX / OpenPBR** | Material and shading description | Apache-2.0 | Surface response, not botanical form. |
| **IFC / buildingSMART** | Built asset data | Open | Has a generic `IfcGeographicElement` for planting. Effectively a dot on a plan. |

The missing layer is a **controlled vocabulary that maps botanical form and individual condition to renderable parameters**. Plant Ontology stops where rendering starts; glTF starts where botany stops. Nothing joins them.

We have already built that layer by accident. It is scattered across `factory-species-identity.mjs`, `genusBloomPriors.js`, `barkPriors.js`, `leafTraitModel.js` and the engine enums. TLA-VIS is the act of naming it.

---

## What is in it

Generated from the live engine, so the document cannot drift from the renderer.

| Module | Terms | What it fixes |
|---|---:|---|
| `habit` | 33 | Growth form, crown shape, trunk habit, branching gradient, phyllotaxis |
| `foliage` | 150 | Leaf templates, twig clusters, posture, render mode, frond type |
| `lamina` | 77 | Lamina class, margin, apex, base, venation — the bridge to flora prose |
| `surface` | 14 | Bark profile, leaf material class |
| `reproductive` | 16 | Bloom type, inflorescence arrangement |
| `condition` | 26 | Water, decline, wound taxonomy, response — **new, and nobody else has it** |
| `temporal` | 8 | Season, age stage |
| `provenance` | 6 | Basis, trait provenance — required for conformance |
| **Total** | **330** | plus 16 measured (numeric) slots |

The `condition` module is the differentiator. Every other module is a tidier version of vocabulary that exists somewhere in the industry. Condition — a named, gated, occlusion-aware grammar for what has *happened* to an individual plant — does not exist in any published standard we can find.

---

## What it is not

Scope discipline is what makes a standard adoptable.

- **Not a file format.** Geometry ships as glTF or USD. TLA-VIS rides in `extras` / custom schemas.
- **Not a shading model.** Surfaces resolve through standard PBR.
- **Not a taxonomy.** Names come from the relevant flora authority.
- **Not a genomics ontology.** Plant Ontology already covers anatomy for phenotyping; we should map to it, not compete.
- **Not a replacement for TLA-185.** Different instrument, different question.

---

## Relationship to TLA-185

They are siblings, not versions.

| | TLA-185 | TLA-VIS |
|---|---|---|
| Question | What is *recorded* about this taxon | How does this plant *read* |
| Consumer | Revit, procurement, climate screening, counsel | Renderers, game engines, Studio+, visualisation |
| Unit | Field | Term |
| Numbering | By field count (169 → 185) | Semantic version |
| Individual state | None | Core |

**Why not number it by term count.** 169 and 185 are records standards where the field set is deliberately bounded. A vocabulary grows by design — adding a wound kind must not force a rename. TLA-VIS uses semantic versioning and reports its term count as a property. This is a decision to confirm, not a fait accompli.

---

## Licensing — the part that decides whether this works

**TLA-185 is currently CC-BY-NC-ND-4.0. Copying that onto TLA-VIS would kill it.**

This is the single most consequential decision in the document, so the reasoning is spelled out.

### Why NC-ND fails for a grammar

- **ND (NoDerivatives) forbids extension.** Standards spread through profiles — a NZ flora profile, a vendor profile, an arboricultural profile. ND makes every one of those a licence breach. You would be the only permitted author of every extension, forever.
- **NC (NonCommercial) makes implementation legally unsafe.** No commercial vendor will ship a feature whose specification forbids commercial use. NC does not stop competitors; it stops *implementers*, which is the opposite of what a standard needs.
- **The precedent runs the other way.** Plant Ontology started on CC-BY-ND-3.0 and **moved to CC-BY-4.0**. Darwin Core is CC-BY. glTF, USD and MaterialX are all permissive. There is no widely adopted NC-ND technical standard, because there cannot be one.

### What copyright actually protects here

A list of terms is thin copyright — you cannot copyright a system, a method, or facts. What you *can* hold:

1. The **specification text** — its expression, structure, worked examples.
2. The **curated definitions** — the botanical judgement in each entry.
3. The **reference implementation** — real code, ordinary software licence.
4. The **trademark** — and this is the strongest lever by far.

### Adopted posture

Ratified 2026-09-07. This is the decision, not a proposal.

| Asset | Licence | Reason |
|---|---|---|
| Vocabulary JSON | **CC-BY-4.0** | Must be implementable. Attribution keeps the name attached. |
| Specification text | **CC-BY-4.0** | Extensions and translations are how it spreads. |
| Reference implementation | **Apache-2.0** | Includes a patent grant, which vendors' lawyers look for. |
| "TLA-VIS" name and conformance mark | **Trademark, retained** | Anyone may implement; only conformant implementations may claim the badge. |
| Curated species records, meshes, stills | **Unchanged, commercial** | The moat. |

**The moat is the data, not the grammar.** An open grammar makes the curated archive *more* valuable, because every implementer becomes a potential consumer of records that speak it. A closed grammar protects a vocabulary nobody uses.

---

## Conformance

Three levels, so implementers can start cheap.

| Level | Requirement |
|---|---|
| **1 — Consumes** | Recognises terms; renders something plausible; degrades unknown input to the default rather than inventing. |
| **2 — Round-trips** | Reads and re-emits without term loss. |
| **3 — Honest** | Enforces expression gates (refuses terms a growth form or taxon cannot express) and carries `basis` on every condition claim. |

Level 3 is the interesting one and the reason to publish at all. It is a machine-checkable definition of *not lying about a plant*, which is the thing the industry currently has no way to state.

---

## What publishing actually requires

Being honest about the work, because "publish a standard" hides a lot.

- [x] Vocabulary extracted from the engine and generated reproducibly
- [x] Condition module designed with expression gates
- [x] Machine-readable artefact (`tla-vis-vocabulary.json`)
- [ ] **Stable identifiers** — every term needs a permanent URI (`TLAVIS:0000123`, resolvable). Renaming a term after publication is a breaking change forever.
- [ ] **Definitions.** 330 terms currently have names, not prose definitions with citations. This is the bulk of the remaining work and it is botanical, not technical.
- [ ] **Deprecation policy.** How a term dies without breaking consumers.
- [ ] **RFC process.** Sibling to the existing `federation/rfc/` path.
- [ ] **Conformance test suite.** A level-3 badge is worthless without one.
- [ ] **Governance.** Who arbitrates. A standard controlled by one commercial party is adopted reluctantly; a Foundation-stewarded one with an external advisory seat is adopted properly.
- [ ] **Mapping tables** to Plant Ontology and AusTraits. Cheap credibility, and it prevents the "you reinvented PO" objection.
- [ ] Counsel review of the licence split.

Realistically: the vocabulary is a week of engineering and **several months of botanical definition writing**. The definitions are the standard. The term list is just an index.

---

## Decisions taken

| Decision | Outcome | Date |
|---|---|---|
| Licence split | Open — CC-BY-4.0 vocabulary and spec, Apache-2.0 reference implementation, trademark retained | 2026-09-07 |
| Scope of first publication | **All 330 terms** as TLA-VIS 1.0, not condition alone | 2026-09-07 |
| Naming | `TLA-VIS` with semantic versioning; term count is a reported property, not the name | 2026-09-07 |

## Still open

1. **Governance** — Foundation-stewarded with an external advisory seat, or wholly internal for now? A standard controlled by one commercial party is adopted reluctantly.
2. **PO mapping** — before or after the definitions land? Cheap credibility, and it heads off the "you reinvented Plant Ontology" objection.
3. **Stable identifiers** — the term list is published but terms do not yet have permanent resolvable URIs. Renaming after publication is a breaking change forever, so this should land soon.
4. **Definitions.** Publishing all 330 terms means 330 names are now public with only module-level prose behind them. The definitions are the standard; the term list is an index. This is the bulk of the remaining work and it is botanical, not technical.
