Wetware World

Format reference

Container geometry and payloads

Shape stated three ways: a named dimension with a tolerance and a causal role, an axis-aligned box in the component frame, and a delegated asset carried in the ZIP with its media type, its byte length and its digest.

Sections
5 and 6
Formats
8
Diagnostics
20
Vectors
12

Definition

Geometry in WWD is the shape of a component, stated as named dimensions, as an axis-aligned bounding box in the component frame, or as a delegated payload in an established geometry format. WWD Core MUST describe semantics and relationships, not duplicate delegated payload models. A component with geometry MUST state an axis-aligned bounding box in its component frame, and a spatial component MUST reference authoritative geometry or explicitly declare geometry omission and rationale. An authoritative geometry asset MUST identify its media type and applicable format version when known, exactly one representation MUST be designated authoritative for each purpose requiring geometric truth, and every payload carried inside the container MUST have a manifest record naming its logical name, media type, byte length, integrity and role.

WWD does not model triangles. It names a shape, states the numbers a second party manufactures against, and points at a file in a format that already carries the surface. The muscle strips state length, width and thickness and carry no mesh. The bioprinted strip states the same three dimensions and delegates its geometry to a 3MF part. The graded strip carries a VTU mesh because a stiffness gradient has to live on one.

Every payload in the container has one manifest record, with a media type, an exact uncompressed byte length, a SHA-256 digest and a role. A consumer MUST verify length and integrity before using an internal asset for manufacture, acceptance or simulation.

Ways to state shape

Sections 5.4, 6 and 7.3.

From a named dimension to a delegated payload
Way Where Rule Seen in
Named dimensionscomponent.dimensionsA map of dimension name to quantity string or dimension object. Each named dimension MUST identify its geometric targets, nominal quantity, and tolerance or permitted interval. A design MAY declare named dimensions independent of the bounding box.muscle-strip-designed.wwd, graded-strip.wwd
Bounding boxthe component frameA component with geometry MUST state an axis-aligned bounding box in its component frame. The box MUST be derived from or consistent with the authoritative geometry within declared tolerance.section 5.4
Delegated assetcomponent.geometryAn object with asset, format and authoritative. The asset names a payload in the package or an external record. The format is one of 3mf, step, stl, gltf, glb, vtu, svg, dxf in the reference schema.bioprinted-strip.wwd
Region on geometrycomponent.regionsA geometry-subset region MUST identify stable delegated feature or topology identifiers. A region MUST identify the frame in which spatial membership is evaluated.region/loop-a, feature loop_a
Field on a meshfield.value.backingA mesh_attribute backing MUST reference a delegated mesh and a named attribute or accessor, and the value count and component count MUST agree with mesh topology and declared association.graded-strip.wwd
No geometrydeclared omissionA spatial component MUST reference authoritative geometry or explicitly declare geometry omission and rationale. A component with no spatial extent, such as a cell suspension specification, MAY omit geometry but MUST still declare quantity and container-interface context where relevant.section 5.1, 7.3

A component with geometry MUST state an axis-aligned bounding box in its component frame, and the box MUST be derived from or consistent with the authoritative geometry within declared tolerance. Geometry and named dimensions that disagree beyond tolerance constitute an error for manufacturing conformance. The conformance checker reports a spatial component carrying neither geometry nor dimensions as not manufacturable.

Named dimensions

Section 5.4 and 5.4.1, and the two spellings.

The simple spelling is a quantity string and means a designed nominal with no stated tolerance. The rich spelling is an object. Upgrading from the string to the object MUST NOT change the dimension name, its position in the document, or the meaning of its nominal value. The four muscle-strip packages and the graded strip all use the string spelling: "length": "12 mm", "width": "2 mm", "thickness": "0.3 mm".

The dimension object
Slot Status Rule
nominalrequired in the object spellingA quantity string. A dimension in the object spelling MUST declare a nominal quantity. A dimension MUST NOT be zero or negative.
causal_rolerequired in the object spellingcontrol, response, context or derived. A cast diameter and a compacted diameter carry the same name and the same unit and are causally opposite.
provenancerequired in the object spellingdesigned, simulated, measured, inferred or assumed.
tolerancerequired for a mating or criterion dimensionA single symmetric quantity, or an object with low and high. A tolerance MUST be non-negative and MUST be expressed in a unit dimensionally compatible with the nominal.
targetsrequired by 5.4The geometric targets the dimension is taken between.
imposed_byrequired for causal role controlThe protocol step, mould or apparatus that sets it. A dimension with causal role response MUST NOT declare a means.
observation_activityrequired for provenance measuredThe observation that produced the number.
derived_from and rulerequired for causal role derivedThe inputs and the computation.
registry/core-properties.json, dimension and geometry terms
Term Quantity kind Canonical unit Causal class Definition
wwd:cross_sectional_area area mm2 response Area of the load-bearing cross-section, perpendicular to the axis along which force is developed and reported. Domain is zero and above.
wwd:specific_force stress kPa derived Active force normalised by the cross-sectional area that generated it. It MUST state which force and which area.
wwd:electrode_diameter length um context Diameter of one electrode's exposed contact area.
wwd:seeding_density_areal areal_density cells/mm2 control Cell count per unit area of substrate at the moment of plating.
a cross-sectional areabioprinted-strip.wwd
{
  "property": "wwd:cross_sectional_area",
  "quantity_kind": "area",
  "provenance": "designed",
  "causal_role": "response",
  "value": "0.54 mm2",
  "note": "measured in the mid-span plane, perpendicular to the load axis"
}

wwd:cross_sectional_area is registered with quantity kind area, canonical unit mm2 and causal class response. It is the denominator of wwd:specific_force, which is derived and names both inputs and its rule. The registry entry records a reference value of 0.54 mm2, SD 0.06, n = 3, from Raman et al. 2016 PNAS 113:3497.

Frames, axes and handedness

Sections 5.1 and 5.2.

The component frame
Slot Value Rule
handednessright or leftThe component frame MUST be right-handed Cartesian. Handedness cannot be inferred from axis letters, and a mirrored construct is dimensionally identical to its original.
axes["x", "y", "z"]Its axes MUST be ordered x, y, z. A frame that reorders or renames its axes permutes every coordinate in the file.
axis_unitsa length unitEach spatial axis MUST have a physical length unit. A coordinate without a unit is a number, not a position.
origina stated datumIts origin MUST be explicitly defined relative to the component geometry or interface datum. The bioprinted strip uses the centroid of the loop-a bore.
anatomynever impliedA component frame MUST NOT infer anatomical directions from axis letters. An anatomical interpretation MUST be an explicit annotation using UBERON or a domain profile.
Transforms between frames
Property Rule Code
ShapeA rigid or affine frame relationship MUST state a homogeneous 4 by 4 transform, with bottom row 0 0 0 1.X01_BAD_TRANSFORM
DirectionThe transform convention MUST map coordinates from the declared child frame into the named parent frame.X01_BAD_TRANSFORM
InvertibilityA singular linear part collapses the child frame onto a plane or line and cannot be inverted.X02_SINGULAR_TRANSFORM
HandednessA reflection changes handedness and MUST be explicitly declared. A consumer MUST NOT silently repair or reinterpret a left-handed delegated asset.X03_HANDEDNESS_FLIP
RigidityA transform declared rigid MUST have an orthonormal linear part and determinant of magnitude one.X04_NOT_RIGID
KindsThe Core vocabulary for frame relationships is rigid, similarity and affine. A non-rigid transform MUST NOT be represented as an affine transform.X01_BAD_TRANSFORM
Transform rulesVectors transform by the linear part. Points transform by the full affine transform. Second-order tensors transform as T_parent = R T_child R^T for an orthonormal rotation R.section 5.2

A reflection changes handedness and MUST be explicitly declared. A consumer MUST NOT silently repair or reinterpret a left-handed delegated asset. Lengths, angles and volumes all survive a mirror, so a mirrored construct is dimensionally identical to its original and every director points the wrong way.

Units

Section 5.3, and where a bare number is refused.

Units policy
Slot Rule Code
Every dimensional valueEvery dimensional scalar, vector component set, tensor, dimension, tolerance, field, requirement limit, and result MUST carry a unit.C02_BARE_NUMBER
DimensionlessDimensionless values MUST use unit 1. Fractions MUST use unit 1.D04_IMPOSSIBLE_PROPORTION
Unit stringsUnits MUST use UDUNITS-2-compatible unit strings unless a delegated payload has its own normative unit vocabulary.V02_UNIT_MISMATCH
Axis unitsEach spatial axis MUST have a physical length unit. All three component-frame spatial axes SHOULD use the same length unit.X05_BAD_FRAME
TolerancesA tolerance MUST be expressed in a unit dimensionally compatible with the nominal, and MUST be non-negative.Z05_BAD_TOLERANCE
Angles and timeAngles MUST carry angular units. Time coordinates MUST carry time units.U02_DIMENSION_MISMATCH
ExtentA dimension MUST NOT be zero or negative.D05_IMPOSSIBLE_DIMENSION

A property registry term MUST fix a canonical quantity kind and canonical unit. Units MAY be written in any accepted spelling of the canonical unit, and a unit that is not an accepted spelling MUST be refused, even where a conversion factor exists. A quantity MUST also identify its quantity kind when the unit alone does not determine meaning. An ontology IRI for a unit MAY additionally be supplied, and OM-2 SHOULD be used when an ontology unit identifier is required for engineering quantities.

Delegation

Section 6, and what each format carries.

WWD Core MUST describe semantics and relationships, not duplicate delegated payload models. WWD 0.1 is not a replacement for 3MF, STEP, STL, VTK, XDMF, OME-Zarr, NIfTI, NRRD, NWB, SBOL, SBML, CellML, ISA or PROV.

Geometry formats and the boundary of each
Format Media type or carriage Carries Does not carry
3MFapplication/vnd.ms-package.3dmanufacturing-3dmodel+xmlAdditive-manufacturing geometry and implicit geometry. 3MFBio MAY carry printer-process metadata but MUST remain delegated.Biological identity, causal role, provenance, acceptance criteria, property fields and the interface contract. Those stay in the design document.
STLsurface tessellationSurface shape.Units, topology semantics, regions and interfaces. STL MUST NOT be used as the sole carrier of any of them.
STEP AP242exchange fileBoundary representation with semantics. When STEP semantics are available, they SHOULD be retained rather than flattened to STL.Field data and biological content.
glTF and GLBmesh and accessor carriageVisualization meshes, unless explicitly authoritative.Authority. A preview or visualization mesh MUST NOT be assumed authoritative unless explicitly designated.
VTK and XDMFapplication/vnd.vtk.unstructured-grid+xml for VTUSimulation meshes and mesh-associated field data.Design intent. The mesh carries points, cells and arrays; the property identity, unit and causal role stay in the field declaration.
What a delegated asset must declare
SlotRule
Media typeAn authoritative geometry asset MUST identify its media type and applicable format version when known.
AuthorityA package MAY contain more than one geometry representation. Exactly one MUST be designated authoritative for each purpose requiring geometric truth.
DerivationDerived geometry MUST identify the source geometry and derivation activity.
FrameA delegated asset MUST identify its coordinate frame or provide a complete transform into a WWD frame.
UnitsA delegated asset MUST identify units not already normatively defined by its format.
IndexingA delegated asset MUST identify whether indexing is zero-based or one-based when references address elements or channels.
AddressingA delegated asset MUST identify array path, channel, accessor, dataset, or attribute name when the file contains multiple candidate values.
Conformance floorWWD 0.1 consumers claiming geometry conformance MUST support at least one of 3MF, STEP AP242 exchange files, glTF/GLB, STL, or VTK unstructured-grid geometry.
geometry delegated to 3MFbioprinted-strip.wwd, wwd/design.json
"dimensions": {
  "length": "12 mm",
  "width": "2 mm",
  "thickness": "0.3 mm"
},
"frame": {
  "handedness": "right",
  "axes": ["x", "y", "z"],
  "axis_units": "mm",
  "origin": "centroid of loop-a bore"
},
"geometry": {
  "asset": "process/print-job.3mf",
  "format": "3mf",
  "authoritative": true
}

The strip states three named dimensions, a right-handed frame with a stated origin, and a 3MF asset marked authoritative. The same part is named by the component fabrication block with protocol_format of 3mf, and by the wwd:print_nozzle_temperature field through imposed_by: "process/print-job.3mf#extruder-1". Printer settings, bioink parameters and cartridge configuration stay in the delegated part.

How a payload is carried

Sections 3.1, 3.2 and 3.3.

A manifest file record
SlotRule
nameThe logical name, a relative ZIP entry path using / as separator, normalized to Unicode NFC.
mediaTypeThe media type of the payload. Geometry assets identify their format version when known.
bytesThe exact number of uncompressed octets.
integrityThe textual form sha256- followed by the Base64-encoded SHA-256 digest.
roleOne of design, geometry, field_data, assay_evidence, simulation_model, solver_deck, simulation_result, measured_result_data, preview, protocol, provenance, opaque.
the manifestbioprinted-strip.wwd, wwd/manifest.json
"files": [
  {
    "name": "wwd/design.json",
    "mediaType": "application/vnd.wwd.design+json",
    "bytes": 8865,
    "integrity": "sha256-KF1ANzfRYu+D4dGWx3RdUZ7lR7u/3XVEkPe6ybuYo6g=",
    "role": "design"
  },
  {
    "name": "process/print-job.3mf",
    "mediaType": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml",
    "bytes": 756,
    "integrity": "sha256-i+KWcsC9jCr95fGIoHrDvF5G7cijsiugmq7o62MDqMo=",
    "role": "opaque"
  }
]

Two records for four entries. mimetype and wwd/manifest.json are the two entries that carry no record. The 3MF part is recorded with role opaque: a rewriter that does not understand it MUST preserve its bytes, name, media type, length, integrity and relationships unchanged.

a field on a delegated meshgraded-strip.wwd
{
  "property": "wwd:ecm_stiffness",
  "quantity_kind": "modulus",
  "provenance": "designed",
  "causal_role": "control",
  "imposed_by": "protocol/gel-casting#step-2",
  "value": {
    "backing": "mesh_attribute",
    "unit": "kPa",
    "store": "fields/stiffness.vtu",
    "association": "node",
    "array": "stiffness",
    "interpolation": "shape_function",
    "domain": { "kind": "mesh" },
    "out_of_domain": { "policy": "error" }
  }
}

fields/stiffness.vtu is manifested at 865 bytes with media type application/vnd.vtk.unstructured-grid+xml and role opaque. The field names the store, the array and the association, so the validator counts the mesh points and the array values and compares them.

Entry names MUST be UTF-8, normalized to Unicode NFC, relative, and MUST use / as separator. They MUST NOT begin with / or contain an empty, . or .. segment. A rewriter MUST refuse an archive entry whose name escapes the package, and MUST recompute integrity metadata for each asset whose bytes it changes.

What the validator refuses

Code, trigger, and the change the writer makes.

The reference implementation is validator/wwd/validator.py for the manifest and payload records, validator/wwd/frames.py for frames and transforms, validator/wwd/dimensions.py for named dimensions and validator/wwd/mesh_attribute.py for a field bound to a delegated mesh.

Geometry, frame and payload diagnostics
Code Severity Trigger Change
P03_UNMANIFESTEDERRORAn archive entry other than mimetype and wwd/manifest.json has no manifest file record.Add a manifest record for it. The package MUST NOT contain unmanifested payload files.
P03_MANIFEST_GHOSTERRORThe manifest lists a file that is not present in the archive.Carry the payload, or remove the record.
P05_NO_INTEGRITYERRORA manifest record carries no integrity digest.State sha256- followed by the Base64 SHA-256 of the exact bytes.
P05_INTEGRITY_MISMATCHERRORThe SHA-256 of the payload does not match the declared digest.Recompute the digest. The digest is content identity, and a mismatch means the bytes changed.
P05_LENGTH_MISMATCHERRORThe manifest byte length does not equal the uncompressed octet count.State the exact uncompressed length.
P05_EXTERNAL_INCOMPLETEERRORAn external asset record is missing uri, integrity, bytes or mediaType.State all four. URI is transport, and the digest is identity.
P10_NO_ROLEWARNINGA manifest record declares no role.Declare one. A consumer cannot otherwise tell whether the file is evidence, geometry or a preview.
P10_UNKNOWN_ROLEERRORA record declares a role outside the Core set.Use a Core role, or opaque for an asset outside the vocabulary. An unrecognised role means the file is skipped and its contents never read.
F12_ATTRIBUTE_NOT_FOUNDERRORA mesh_attribute field names an array the delegated mesh does not provide.Name an array the mesh contains. Evaluation otherwise has nothing to read.
F12_COUNT_MISMATCHERRORThe attribute carries a different number of values from the mesh points or cells the association names.Match the count to the association. A consumer indexing beyond the array reads past its end, or reads a value belonging to a different part of the tissue.
F12_COMPONENT_MISMATCHERRORThe array length does not divide evenly into the declared components per value.Correct the array or the component count.
X05_BAD_FRAMEERRORA frame declares no origin, no axis units, axes other than x, y, z, or a handedness that is neither right nor left.Declare all four.
X06_IMPLIED_ANATOMYERRORAxis names imply an anatomical direction.Rename the axes and annotate with UBERON explicitly.
X03_HANDEDNESS_FLIPERRORA transform has a negative determinant.Declare the child frame handedness explicitly if the mirror is intended. Lengths and angles survive a mirror, so the geometry still looks correct while every director points the wrong way.
Z01_DIMENSION_NO_NOMINALERRORA dimension object states no nominal quantity.State one. A tolerance without a nominal bounds nothing.
Z02_DIMENSION_NO_ROLEERRORA dimension object declares no valid causal role or no valid provenance.Declare both. Without them a reader cannot tell the mould from the article.
Z05_BAD_TOLERANCEERRORA tolerance is a bare number, is negative, or is in a different physical dimension from the nominal.Write a quantity string, non-negative, in a compatible unit. Use low and high for an asymmetric interval.
Z06_MATING_DIMENSION_NO_TOLERANCEERRORA dimension named by an interface or targeted by an acceptance criterion states no tolerance, including when it uses the string spelling.Upgrade to the object spelling and state a tolerance or a permitted interval.
D05_IMPOSSIBLE_DIMENSIONERRORA dimension is zero or negative.State a positive extent. An object with no extent in one axis has no volume and no cross-section.
C02_BARE_NUMBERERRORA quantitative slot holds a bare number with no unit.Write a quantity string. A bare JSON number MUST NOT serve as a dimensional quantity in a Core scalar-or-field slot.
Test-suite vectors covering geometry, frames and payloads
Vector Section Reports What it holds
invalid-integrity-mismatch3.2P05_INTEGRITY_MISMATCHThe design document does not match its declared digest.
invalid-unmanifested-file3.2P03_UNMANIFESTEDA payload file present in the archive but absent from the manifest.
invalid-path-traversal3.1P07_UNSAFE_PATH, I01_NO_PACKAGE_IDAn archive entry that escapes the package root, in a package that also names no package identifier.
invalid-bare-number5.3C02_BARE_NUMBERA quantitative slot holding a bare number with no unit.
invalid-dimension-mismatch5.3U02_DIMENSION_MISMATCH, U01_CRITERION_UNIT_MISMATCHA force criterion stated in hertz.
invalid-frame-bad-handedness5.1X05_BAD_FRAMEA frame whose handedness is neither right nor left.
invalid-frame-reordered-axes5.1X05_BAD_FRAMEAxes listed out of Core order. Reordering permutes every coordinate in the file.
invalid-transform-mirrors-the-frame5.2X03_HANDEDNESS_FLIPA transform with negative determinant.
invalid-transform-not-rigid5.2X04_NOT_RIGIDA transform declared rigid whose linear part scales.
invalid-transform-singular5.2X02_SINGULAR_TRANSFORMA singular transform collapses the child frame onto a plane and cannot be inverted.
invalid-control-without-means7.8A8_CONTROL_NO_MEANSA control that names no protocol step or apparatus imposing it. Section 5.4.1 places the same obligation on a dimension whose causal role is control.
invalid-response-imposed7.8V03_CAUSAL_CLASS_MISMATCHA quantity the tissue determines stated as something the producer sets. A dimension in that shape is reported as Z04_DIMENSION_RESPONSE_IMPOSED.

P10_NO_ROLE is a warning. Every other code in the first table is an error. A package whose internal asset fails integrity verification MUST be rejected for all conformance classes requiring that asset.

What geometry does not specify

The boundary of sections 5 and 6.

Outside the geometry block
Not carriedRule
Mesh contentsThe validator reads a delegated mesh only far enough to count points and cells and to find the named array. It does not parse mesh geometry, validate element connectivity, or interpret the numbers.
Bounding box consistencyThe reference validator does not recompute the bounding box from a delegated asset. Section 5.4 states the obligation, and geometry and named dimensions that disagree beyond tolerance constitute an error for manufacturing conformance.
Tessellation accuracyA consumer MUST NOT treat tessellation accuracy as a dimensional tolerance.
Process metadataPrinter settings, bioink parameters and cartridge configuration stay in the delegated 3MF or 3MFBio part. 3MFBio MAY be referenced as a delegated asset or extension, but MUST NOT be treated as the WWD core architecture.
Poses in an assemblyWhere a part sits. A part is a pose of something and belongs to the wwd.mechanism extension.
AnatomyA component frame MUST NOT infer anatomical directions from axis letters.
Non-rigid warpsA non-rigid mapping MAY be delegated to an asset or extension and MUST state how scalar densities, vectors, and tensors transform.

A component with no spatial extent, such as a cell suspension specification, MAY omit geometry but MUST still declare quantity and container-interface context where relevant.

Questions

What are the ways a package can state shape?

Three, and they compose. A component MAY declare named dimensions under component.dimensions, a map of name to quantity string or dimension object. A component with geometry MUST state an axis-aligned bounding box in its component frame, derived from or consistent with the authoritative geometry within declared tolerance. A component MAY declare component.geometry, an object naming a delegated asset, its format and whether it is authoritative. A spatial component MUST reference authoritative geometry or explicitly declare geometry omission and rationale. Under the conformance checker, a spatial component with neither geometry nor dimensions is reported as not manufacturable.

How is a named dimension written?

A named dimension has exactly two spellings. The simple spelling is a quantity string and means a designed nominal dimension with no stated tolerance. The rich spelling is an object carrying nominal and, as applicable, tolerance, targets, causal_role, provenance, imposed_by, observation_activity and derived_from. Upgrading from the string to the object MUST NOT change the dimension name, its position in the document, or the meaning of its nominal value. A dimension in the object spelling MUST declare a nominal quantity, a causal role and a provenance class. A dimension referenced by an interface or constrained by an acceptance criterion MUST declare a tolerance or a permitted interval, and the string spelling cannot carry one.

What does the geometry object carry?

An asset, a format and an authoritative flag. The reference schema requires asset and format, and closes format to 3mf, step, stl, gltf, glb, vtu, svg and dxf. An authoritative geometry asset MUST identify its media type and applicable format version when known. A package MAY contain more than one geometry representation, and exactly one MUST be designated authoritative for each purpose requiring geometric truth. A preview or visualization mesh MUST NOT be assumed authoritative unless explicitly designated. Derived geometry MUST identify the source geometry and derivation activity.

How is a payload carried and checked?

Every internal ZIP entry except mimetype and wwd/manifest.json MUST have exactly one manifest file record, and every record MUST identify logical name, media type, byte length, integrity and role. The byte length MUST equal the exact number of uncompressed octets. The integrity value MUST use the textual form sha256- followed by the Base64-encoded SHA-256 digest. A consumer MUST verify manifest byte length and integrity before using an internal asset for manufacture, acceptance, or simulation, and MAY defer verification until the asset is first used. A package whose internal asset fails integrity verification MUST be rejected for all conformance classes requiring that asset. The package MUST NOT contain unmanifested payload files.

What does STL not carry across?

STL MAY be used for surface shape but MUST NOT be used as the sole carrier of units, topology semantics, regions, or interfaces. When STEP semantics are available, they SHOULD be retained rather than flattened to STL. A delegated asset MUST identify its coordinate frame or provide a complete transform into a WWD frame, and MUST identify units not already normatively defined by its format, so an STL asset carries those declarations in the WWD document rather than in the file.

What does 3MF carry, and what stays in WWD?

3MF MAY carry additive-manufacturing or implicit geometry, and 3MFBio MAY carry printer-process metadata but MUST remain delegated. Printer-process metadata such as 3MFBio MAY be referenced as a delegated asset or extension, but MUST NOT be treated as the WWD core architecture. In bioprinted-strip.wwd the 3MF part is the authoritative geometry and also the fabrication protocol reference, with protocol_format 3mf. The design document keeps the biological identity, the property fields, the causal roles, the interfaces and the acceptance criteria, and surfaces one delegated control, print nozzle temperature, with imposed_by pointing into the delegated part at process/print-job.3mf#extruder-1.

What is the coordinate convention?

Every component with spatial content MUST define one canonical component frame. The component frame MUST be right-handed Cartesian. Its axes MUST be ordered x, y, z. Its origin MUST be explicitly defined relative to the component geometry or interface datum. Each spatial axis MUST have a physical length unit, and all three SHOULD use the same one. A component frame MUST NOT infer anatomical directions from axis letters, and an anatomical interpretation MUST be an explicit annotation using UBERON or a domain profile. An additional frame MUST have an identifier, origin, ordered axes, handedness, and axis units, and a rigid or affine relationship to another frame MUST state a homogeneous 4 by 4 transform mapping child coordinates into the named parent.

Where is a bare number rejected?

In every Core scalar-or-field slot. A bare JSON number MUST NOT serve as a dimensional quantity, and the validator reports C02_BARE_NUMBER. A tolerance written as a bare number is reported as Z05_BAD_TOLERANCE. Dimensionless values MUST use unit 1 and fractions MUST use unit 1, so a dimensionless slot still carries a unit string. Units MUST use UDUNITS-2-compatible unit strings unless a delegated payload has its own normative unit vocabulary, and a unit that is not an accepted spelling of a registered term canonical unit MUST be refused even where a conversion factor exists.

How does a field bind to a delegated mesh?

Through the mesh_attribute backing. It MUST reference a delegated mesh and a named attribute or accessor, MUST declare association as node, cell, face, edge or quadrature, and MUST declare the interpolation rule. The value count and component count MUST agree with mesh topology and declared association. The field frame MUST be consistent with the mesh frame or provide an explicit transform. In graded-strip.wwd the ecm_stiffness field names store fields/stiffness.vtu, array stiffness, association node and interpolation shape_function, and the payload is manifested with media type application/vnd.vtk.unstructured-grid+xml. The validator counts the mesh points and the array values and reports F12_COUNT_MISMATCH when they disagree.

What does the reference validator not read?

It reads a delegated mesh only far enough to count points and cells and to locate the named array. It does not parse mesh geometry, validate element connectivity, or interpret the numbers, because those belong to the delegated format and its own tools. It does not recompute a bounding box from an asset, so the section 5.4 obligation that geometry and named dimensions agree within tolerance is checked against the delegated file by the parties exchanging it.

Continue

Related pages.