Materials Management (MAT)

Materials Management (MAT). Materials is the system of record for constitutive and process-allowable numbers: density, stiffness, conductivity, surface states, and pedigree. CAD, CAM, and CAE select; they do not own the library.

In industry this is Granta / MatWeb / OEM materials-library-class capability. In N23D it is not a seat next to someone else’s stack. It is a peer module on one native Rust binary — N23D — 100% Rust we write.

Metal powder properties — constitutive numbers live in MAT

Same product. CAD picks a VariantId. It does not own E, k, or μ. The same variant is what CAM cuts, CAE solves, and ERP buys. A coupon is a new variant in MAT, then you select it. Filament, powder, and resin are material variants, not a color swatch. Missing density means mass is unknown.

What Materials actually does

  • One id, three consumers, zero second copies. CAD, CAM, and simulation assign VariantId (preferred) or MaterialId (which resolves to the default variant). They never store a parallel E, ν, or ρ.
  • We write the schema, the evaluators, thermo and transport mixing rules, a CALPHAD-style Gibbs minimizer if and when we implement it, flash, and the reaction integrator. We type or ingest published numbers once into our store. After ingest the record is ours: our units, our validity window, our hash, our uncertainty.
  • Ingest adapters are one-way ETLs we own. They are not products we ship as the source. There is no live pipe to the place a CSV came from. Coupon tests, mill certs, licensed public tables, TDB or NASA-7 coefficients, and user dumps all become our variants. Deleting the original file does not break evaluate.
  • Material is the catalog noun: 6061, PA12-CF, water, Inconel 718. Names, specs (UNS, AMS, ASTM, EN, ISO, trade), family, default variant.
  • Variant is the assignable thing: condition, form, composition, surface, environment scope, pedigree, property set, validity windows. A body may have different variants on different faces only when the physics needs it (coating, clad, case-harden). Default is one variant per body.
  • Appearance (color, texture) lives in CAD. Emissivity lives here, on surface state. Contact pair carries static and kinetic friction and optional wear. Never a μ on a lone variant. Same steel pair, polished-dry versus blasted-oily, two values.
  • A property is a field: key, unit (SI stored), rank, domain, representation as constant, table, or model, uncertainty, source, validity. Interpolation is declared. Extrapolation is opt-in and flagged on every report that used it. Empty is not zero. Unknown is first-class. Evaluators return a result. Simulation and CAM must not coerce a missing field into a room-temperature default.
  • The property catalog is open. A new key does not require a schema migration. Known keys solvers will ask for include solid mechanics (ρ(T,P,porosity), E, ν, G or Cijkl, strengths, σ(ε,T,ė) families, hyperelastic, Prony, creep, toughness, fatigue, damping), thermal (k(T, orientation), Cp(T), enthalpy and latent heat, CTE(T), Tref, solidus/liquidus/Tg/Curie, emissivity, absorptivity, contact conductance as a pair), fluids and process (viscosity, surface tension, diffusivities, bulk modulus), EM and optical slots, durability and space (corrosion versus environment, TML/CVCM, atomic-oxygen yield, radiation shift, moisture uptake, REACH/RoHS/NASA flags), and AM pedigree (as-built / HIP / heat treat, build-axis anisotropy, powder or filament lot identity shared with additive CAM).
  • Chemical engineering lives here. Species, mixture, reaction. We do not call a process simulator. Parse composition (wt%, at%, ppm) and refuse non-summing assays. 316 and 316L are two mixtures. Ideal mixture plus one real equation of state (Peng–Robinson) plus one activity model. Flash (VLE) for two-phase process fluids. Mixture density, viscosity, conductivity, and heat capacity at T, P for simulation and CAM. Reaction objects plus 0-D batch, CSTR, and PFR integrators. Unit-safe arithmetic. A structural study may evaluate a solid variant without flashing it. A mixer or reactor study must go through a mixture.
  • Solid constitutive, fluid constitutive, and contact-law evaluation are owned and implemented here. Density for mass properties is an evaluation of the variant at reference temperature. If density is missing, mass is unknown.
  • Company overlay wins over catalog default. Lot cert wins over company overlay. On study release, simulation stores a snapshot hash. Replay uses the snapshot, not whatever the library is today. Library edits never mutate a pinned snapshot. New data is a new variant or a new revision.
  • CAD picker: search the library, see validity, see which properties are filled. The body stores only VariantId and optional surface override. BOM lists MaterialId and spec text from the library.
  • CAM source-lot material is a VariantId. Thickness is geometry. Alloy is the library. Filament, powder, and resin lots are variants. Additive compatibility flags (brass nozzle versus carbon fiber) read from the variant. Weld filler is a variant. Dissimilar-weld studies pick two variants plus a process. Wrong-family assign is a hard fail.
  • Environment is data we store. Variants declare which environments they are valid in: earth ambient, hot and cryo, vacuum and UHV, LEO, radiation, seawater / LOX / oil, micro-g.
  • Seed catalog for first ship: water, air, a handful of steels, aluminums, and polymers with room-temperature cards and a few T-tables, plus empty slots. Depth comes from ingest and tests we run, not from shipping someone else’s product.
  • CI fails if any crate depends on a materials-vendor library or HTTP source. No vendor API or vendor database at solve time or assign time. No Granta, MatWeb, Thermo-Calc, Aspen, MAPTIS, JAHM, or Total Materia process is linked, licensed, or required to evaluate a property.
  • Variant is group-global. Lot pedigree names the receiving legal entity.
SEM of 316L powder — material variants are coupons, not color swatches

How N23D puts this in one place

Most stacks fail the day after save, when the model, the ticket, or the invoice becomes someone else’s import. N23D removes that day. This module reads the same record as the others.

  • one native Rust binary: N23D. 100% Rust we write. No vendor kernel, ledger, PLC runtime, HRIS, or ITSM as the source of truth. File readers and protocol bridges are interchange.
  • One identity plane: Item, VariantId, Person, and AssetId are global. Invoice, work order, inventory, quote, pay result, and NCR sit on a LegalEntityId.
  • One digital thread: modules read the same record. There is no daily STEP shuffle as the workflow. Check-in is PLM save. CAM does not fork the body.
  • Command::Core is the identity and policy plane. CCB is the full-spectrum change spine (not a second vault). TIX holds operational life of assets; ERP sees only the financial view.
  • Materials only from MAT. CAD selects VariantId. Missing density means mass is unknown — we do not invent a number so a BOM or plot closes.
  • ERP is one company’s books. BUS holds HR, org, legal entities, and group consolidation. HoldCo is not a plant. No fake Form 1120. No fake Lohnsteuer.
  • One library, one identity. No constitutive override box on the CAD part.
  • Appearance is CAD. Emissivity is a material surface state. Those are not the same field.
  • Sheet-metal K-factor stays on the tool pair; the variant still supplies E and yield for springback if we compute it.
Blast furnace — metallurgy upstream of every VariantId

What we will not fake

This is the product promise, not a claim that every solver and every pack already ships in the binary today. Industry-class names below are capability equals. They are not products we ship.

  • We do not wrap a vendor materials database and call it ours. File readers are interchange.
  • We do not fake density to close a BOM. We do not treat 6061 as a CAD color.
  • Materials is not a cost card — commercial cost lives in ERP per LegalEntityId.

If CAD still owns density or invents E to close a BOM, we failed. MAT is the library. Everyone else selects.

Aluminum extrusion die set — process and alloy as material facts

Natively connected, not glued together

N23D runs one data model across design, make, operate, and the business. Nothing is exported as the daily path. Nothing is re-keyed. Nothing is lost in translation between vendors.

  • One data model. A part, an order, a nonconformance, a ticket, and a change point at the same objects. No mapping tables, no nightly sync, no drift.
  • No export/import loss. Geometry, tolerances, revisions, asset state, and history stay intact because they never leave the system as the daily path.
  • Auditability by default. Every change is versioned and attributable, so traceability is a query, not a project.
  • Speed. 100% Rust: native performance, small footprint, no runtime surprises.
  • Sovereignty. Your data, your infrastructure, your rules. No lock-in.