1 viewer
Component · Visualization
Marker3D
Point event addressed to a surface cell (column + bucket); the renderer maps its kind to an effect.
- Category
- Visualization
- Slots
- 1
- States
- 0
- Writer
- Legacy
Preview
Marker3D · Surface Event Annotation
<Scene
height={280}
projection="isometric"
title="Marker3D · Surface Event Annotation"
>
<Camera focus="surface" mode="orbit" />
<Heightfield
id="surface_grid"
scrollAxis="x"
window={6}
xAxis={{ label: "Time", semantic: "time" }}
yAxis={{ label: "Intensity", semantic: "value" }}
zAxis={{ label: "Bucket", semantic: "bucket" }}
>
<Series3D
buckets={["Alpha", "Bravo", "Charlie"]}
columns={[
[0, [1.0, 2.0, 3.0]],
[1, [2.5, 4.0, 5.5]],
[2, [3.0, 5.0, 6.0]],
[3, [2.0, 3.5, 4.5]]
]}
id="depth"
label="Telemetry"
window={6}
/>
</Heightfield>
<Marker3D
at={{ bucket: 1, column: 2 }}
kind="settlement"
label="Settlement Event #42"
value={5.0}
/>
</Scene>Anatomy
The named parts of the rendered markup. Recipes style these hooks, and every renderer keeps them stable.
| Slot | DOM class |
|---|---|
| root | .primitive-marker3d |
States and platforms
The states the contract publishes, the platforms it declares, and the style recipes that dress it.
States
Platforms
Recipes
Renderers
The example above still needs shared writers for: Scene, Camera, Heightfield, Series3D, Marker3D.
Declared adapters. A status is the manifest's declaration, not a measured parity result.
| Target | Renderer | Status |
|---|---|---|
| web | react | experimental |
| native | native-adapter | experimental |
Accessibility
Semantic structure must stay available without visual styling.
- Expose meaningful names for interactive controls.
- Keep keyboard and pointer behavior equivalent where the platform supports it.
- Publish state with native semantics and data attributes where the adapter supports them.