# AcaysiaGEM

> For the complete documentation index, see [llms.txt](https://acaysia.com/llms.txt); a single-file corpus of every page is at [llms-full.txt](https://acaysia.com/llms-full.txt). Every page in that index is served as Markdown: append `.md` to its URL or send `Accept: text/markdown`.

Canonical: https://acaysia.com/engines/acaysia-gem

The geometry engine. A spatial simulation is only ever as good as the shape you run it in. Part of the [Acaysia platform](https://acaysia.com/platform.md).

Real vessels are not boxes — they have dished bottoms, baffles, downcomers, sparger rings and nozzles set at awkward angles, and every one of those changes the answer. GEM builds that shape, proves it is fit to simulate before a GPU hour is spent on it, and hands it to [AcaysiaDRT](https://acaysia.com/engines/acaysia-drt.md) ready to run.

- **18** — parametric geometries, benchmark duct to full vessel
- **100%** — boundary faces tagged, or the build fails
- **0** — wasted GPU hours on a leaking domain

## The model is the picture

### Not a picture of a plant — the plant itself.

Twelve units, routed lines and procedural steel, rendered from the solver's own geometry: 678,374 triangles, rendered in ~6 s.

Authored parametrically and rendered straight from the same model the solver runs on. There is no separate marketing model to fall out of sync — when the design changes, the picture changes with it.

The twelve-unit plant is shown three ways: **Metal** is the plant as equipment, standing on the hardstanding. **X-ray** is the same scene: the walls go transmissive and the internals the geometries already built — trays, downcomers, impellers, packing — are simply there. **3D model** is the exported model itself, running in the browser at 147,710 triangles — the same geometry the solver meshes, one export flag on the plant above.

- **Two looks — equipment, or x-ray.** One scene rendered twice. Nothing was modeled specially for the transparent version — the internals were always in the geometry, because the solver needs them there.
- **Fast — seconds, not hours.** The twelve-unit plant renders in about 6 seconds on a GPU. Fast enough that a render is something you do while iterating, not a deliverable you schedule a day for.
- **Web-native — ship the model, not a screenshot.** Output is a still image, an editable scene, or a 3D file a browser can open — usually the better answer, since it is the model itself rather than a picture of it.
- **Composable — drops onto a page.** Renders come out on transparent backgrounds with the plant still standing on its own shadow, so it composites cleanly onto whatever sits behind it.

## The idea

### Model the space, not the steel.

Ordinary CAD describes the vessel: the shell, the flanges, the weld prep. A solver does not care about any of that. It cares about the shape of the *liquid*.

GEM models that negative space directly — the fluid domain — and labels its edges as it builds them. That is why its output drops into a solver without the usual translation losses. Every face carries exactly one tag:

1. **Inlet** — this face is where fluid enters.
2. **Wall** — that one is a wall: shell, dished bottom and baffles.
3. **Exclusion** — this volume is swept by an impeller and is not fluid at all.
4. **Outlet** — and this is where it leaves.

### What the solver sees, and what it doesn't.

Agitator shafts, turbines, drive motors, baffles and nozzle flanges can be carried for visual fidelity without polluting the physics. A rotating impeller is handed to the solver as the volume it sweeps, which is the honest representation of it.

## Geometry library

### Eighteen shapes, three families.

From the ducts the solver is benchmarked on to the real equipment, internals and all.

| Family | Geometries | What it is for |
| --- | --- | --- |
| Flow domains (6) | Channel · cylinder in channel · backward-facing step · sudden expansion · serpentine mixer · lid-driven cavity | Benchmark ducts — the shapes the solver is benchmarked on, where an analytic or published answer exists. |
| Inline components (2) | Tee mixer · orifice plate | Round pipe fittings — blending at a junction, and pressure loss across a restriction. |
| Vessels (10) | Stirred tank · distillation column · bubble column · packed-bed reactor · fermenter · flash drum · decanter · cyclone · drum · horizontal separator | The real equipment — internals and all, at the scale a plant actually runs. |

- **Stirred tank.** Shaft, turbine, drive motor, baffles and nozzle flanges are all here — carried for fidelity, and none of them confusing the solver about where the fluid is.
- **Distillation column, walls made transparent.** The tray stack and downcomers are genuinely modeled, not implied by a texture — which is why a spatial solver can be asked what happens between them.

**Parameter sweeps.** Each geometry sweeps across its whole parameter range in the test suite, so a mis-tagged large impeller, a baffle poking through a dished bottom, or an unsealed vessel is caught automatically on any change — not discovered halfway through a run.

## Process

### How a domain gets built.

Describe it, build it, check it, export it — nothing reaches the solver until the check has passed. Each step exists because the alternative fails quietly rather than loudly.

1. **Describe (parametric) — dimensions, not drawings.** A vessel is described by the numbers an engineer already has — diameter, liquid height, impeller ratio, clearance, nozzle positions — and rebuilt from them on demand. Changing a design means changing a number, not redrawing a model.
2. **Build (tagged at build) — the builder knows what it built.** Boundary faces get their meaning — inlet, outlet, wall, symmetry, exclusion — at the moment the builder creates them. No fragile post-hoc guessing about which surface was the inlet, and no selector language to get wrong.
3. **Check (health check) — fail on the desk.** Watertight, every face tagged, one connected fluid, nothing protruding. Every domain has to pass its health check before it can be exported.
4. **Export (lattice-ready) — straight into the solver.** A validated domain converts into exactly what AcaysiaDRT consumes, in the solver's own conventions — no translation losses.

## Health check

### Fail on the desk, not on the cluster.

The expensive failure in spatial simulation is not a wrong answer. It is a run that consumes a night of GPU time and produces nonsense because the domain leaked. Every GEM domain has to pass a health check before it can be exported.

- **Watertight — a real solid.** Valid, watertight, a single connected body with positive volume. The check that catches a geometry which merely *looks* closed on screen.
- **No untagged faces — every boundary has a rule.** Each boundary face must carry exactly one tag. An untagged face is a hole in the physics — a boundary the solver has no instruction for — and it leaks silently rather than erroring.
- **Nothing stranded — one connected fluid.** The fluid must be one region with no isolated pockets, every declared opening must actually reach it, and the domain must be sealed everywhere an opening does not exist.
- **Nothing protruding — internals stay inside.** Anything declared as submerged has to genuinely sit within the fluid. When it doesn't, the check names the offending point rather than leaving you to find it in a render.

### Checked against real CAD.

Where a trusted reference part exists, GEM's model is regression-checked against it — volume, surface area, centroid, inertia and bounding box — so a simplified flow domain stays honest about the equipment it represents.

## Export

### Straight into the solver.

Build, check, hand off. Every domain has to pass its health check before it reaches the solver.

- **Export — lattice-ready, three ways.** A validated domain converts into exactly what the solver consumes. Where a geometry carries an exact mathematical description of its surface, the export uses it, giving sub-cell accuracy at curved walls instead of a staircase.
- **Contract — no translation losses.** The export encodes the solver's own conventions directly, pulled from its source rather than reimplemented — the class of mismatch that produces a simulation which runs happily and means nothing.
- **Downstream — then it's a DRT run.** From there it is an [AcaysiaDRT](https://acaysia.com/engines/acaysia-drt.md) job: solved flow, transport, and the chemistry that [AcaysiaRT](https://acaysia.com/engines/acaysia-rt.md) supplies per cell.
- **In the app — without the toolchain.** [AcaysiaCORE](https://acaysia.com/core.md) brings this into the browser — pick a geometry, set the parameters, see it in 3D, check the regions, and export it for a run without installing anything.

Every lattice cell carries exactly one flag (fluid, wall, inlet or outlet), and the solid mask is written in the solver's own cell order. Nothing is handed to AcaysiaDRT until all four checks have passed.

## Plant assembly

The physical counterpart of a [Rete](https://acaysia.com/engines/acaysia-rt.md#rete) flowsheet.

### One vessel is the primitive. A plant is the point.

The same machinery that places one vessel places thirty of them. GEM grows from independent geometries into a laid-out, connected, named plant.

The thirty-unit plant: thirty units, four parallel trains, 1.6 million triangles, spanning 105 × 172 meters of plot. Built from eight distinct designs, because identical units share one underlying shape.

- **Plot plan — place and orient.** Units are positioned as a plot plan, each placed unit carrying its boundary tags along with it — the detail that separates a real assembly from a pile of shapes that lost their meaning when they moved.
- **Piping — routed, not drawn.** Connections between units are routed through the plant as real line work rather than sketched, with nozzle-to-nozzle port matching and collision awareness.
- **Structure — racks, steel and access.** Pipe racks, supports and access structure come with it, so what you are looking at reads as a plant rather than as vessels floating in space.
- **Cheap by design — thirty units, eight builds.** Identical units share one underlying shape, so a thirty-unit plan costs eight builds and not thirty. That is what makes assembling a whole plant routine instead of an overnight job.

## The platform

1. [AcaysiaRT](https://acaysia.com/engines/acaysia-rt.md) — Simulation runtime. 127 registered process models.
2. [Rete](https://acaysia.com/engines/acaysia-rt.md#rete) — Whole-plant flowsheets. Recycle included.
3. [AcaysiaDRT](https://acaysia.com/engines/acaysia-drt.md) — Spatial simulation. Lattice Boltzmann, full 3D.
4. [AcaysiaGEM](https://acaysia.com/engines/acaysia-gem.md) — Geometry. 18 parametric geometries.
5. [AcaysiaCORE](https://acaysia.com/core.md) — Simulation in the browser. Coming soon.

## Start from your geometry.

Talk to us about modeling your vessels — and what changes when the simulation runs in the real shape instead of an idealized one.

[Book a discovery call](https://acaysia.com/contact.md)
