Archipelago
Ascora's credit accounts as islands, contoured terrain with real lagoons and two explode axes that work independently.
Ascora reads credit accounts as an archipelago, islands surfaced by bureau data: one island
per account, with its footprint from the balance and its elevation from the account's age.
archipelago builds the field, one island per entry.
Two explode axes, independently
This is the clearest demonstration of why explode is a vector per placement rather than one number for the scene. Fan islands moves whole islands out across the water while each island's own plates stay sealed. Open plates lifts every island's contour bands apart without moving the islands. They compose, and neither is a special case of the other.
explode={{
assembly: 1, // islands fan outward
blocks: { visa: 0, amex: 0 }, // ...while their plates stay shut
}}A lagoon is a hole, not a second island
The auto loan is drawn down, which sinks a lagoon into the middle of it. That has to come out as a genuine hole in the upper bands — an island with a bite out of it, not two islands that happen to sit close together.
Getting there is a five-step pipeline, and the first step removes a whole family of bugs:
- Pad the grid with a ring of cells below every level. Then no contour ever meets the border, every ring closes on its own, and border clipping never arises.
- March each 2×2 cell into segments. Cases 5 and 10 are saddles, two opposite corners in and two out, and the cell centre decides whether they join. Getting that wrong fuses two islands into one.
- Stitch segments head-to-tail into closed rings.
- Reduce with Ramer–Douglas–Peucker. A 56² field gives hundreds of points per ring and simplification takes that to tens with no visible change.
- Nest by containment. Even depth is a shell, odd is a hole of its parent, which is what makes an island inside a lagoon inside an atoll work rather than only the two-level case.
Levels come from the terrain, not the spec
Sinking a lagoon lowers the summit, so an island's declared height stops being its peak. The generator measures the field and spaces bands against what is actually there, or the upper bands would sit above the terrain and come back empty.
That is a small instance of the general rule: the terrain is the data. An empty state passes placeholder accounts through the same generator rather than through a second drawing that has to be kept in step.
Install
shadcn add @gesso/relief-contour