{"params":{"piece":{"type":"choice","default":"straight","label":"Road piece","describe":"Which piece of the road network this tile is \u2014 one asset covering every road surface the kit needs. The surface is REBUILT per value: the junction pour, its rims and the markings are different geometry, not one mesh rotated, and the triangle count moves with it \u2014 20 / 170 / 234 / 316 / 274 under pour step, 20 / 32 / 36 / 44 / 28 under lines both. On the SHIPPED defaults, though, all five build the same 20-triangle flat square: pour defaults to none and lines to none, so a bare junction is deliberately as plain as a bare straight, and this knob shows itself once you turn pour, lines or crossing on. Every value is the same exact 4.000 m square centred on the origin and 0.05 m thick, so any piece drops into any cell of the kit grid and butts its neighbours with no gap at any setting of any other knob. straight is a run of road and the shipped default: no junction, so no pour, so the plain tile stays plain. corner turns traffic 90 degrees, entering at -Z and leaving at +X, and relays an L. t-junction adds a minor arm at +X and relays a T. crossroads opens all four arms and relays a cross. end closes the road and relays a stepped turning head, the lollipop of a cul-de-sac. Aim a piece in a scene with yaw alone.","affects":"geometry","options":["straight","corner","t-junction","crossroads","end"]},"lines":{"type":"choice","default":"none","label":"Lane markings","describe":"Painted lane markings, as real geometry 2 mm proud of the road in the `paint` zone, clipped to the surface so a stripe crossing the junction pour steps down with it rather than hanging over it. Whatever is selected FOLLOWS THE PIECE. none is the default and leaves the asphalt bare, exactly as this tile ships. centre paints the centre line of a narrow two-way street \u2014 broken into 1 m dashes down a straight, phased so a chain of clones dashes evenly across the joints; bent round a corner; running through a T, which also gets a stop bar across its minor arm; and stopped short of the middle of a crossroads, which is painted with nothing at all. A centre line also STOPS at a zebra when `crossing` is on, the way a real one does. edges paints a CONTINUOUS unbroken line along each side of the carriageway, reaching both mouths at the same 1.55 m offset and 0.12 m width so butted copies read as one line rather than a row of rectangles. Wherever an arm opens off the through road the kerb line TURNS INTO IT as a mitred right angle \u2014 the two bands share the corner square rather than stopping level with each other and stepping past by a line width \u2014 so a corner, a T and a crossroads all read as one continuous painted kerb. both paints centre and edges together.","affects":"geometry","options":["none","centre","edges","both"]},"pour":{"type":"choice","default":"none","label":"Junction pour","describe":"What a junction piece does with the area traffic turns over \u2014 the course a real street relays first. It does nothing on a straight, which has no junction. none is the DEFAULT and removes it altogether, for a junction as plain and as flat as a bare tile: the shipped tile is the one a scene clones across a whole plan without arguments, and a pour repeats identically on every junction in that plan, so a laid-out road network with it on reads as a stamped pattern rather than as a street. That is the same reasoning that makes patchCount default to 0 and lines default to none \u2014 the value that tiles cleanly is the value that ships. step lays the course as REAL GEOMETRY ONLY: a shallow relaid pan in the road's own colour, running out along each arm to its own mouth and feathering back to the surface at the tiling edge, so the junction carries ONE flat asphalt tone exactly like the straight tile does and reads through its own rims. tone additionally paints the pour with the fresh-asphalt course colour, which is much the loudest of the three from above \u2014 it is how a recently relaid junction really looks, but it is the mark that repeats hardest wherever you place the piece. Both are opt-in; the geometry of each is unchanged.","affects":"geometry","options":["none","step","tone"]},"crossing":{"type":"toggle","default":false,"label":"Zebra crossing","describe":"Adds a zebra crossing in the same 2 mm proud paint \u2014 bars running along the direction of travel and arrayed across the road, which is what makes it read as a ladder from above. OFF by default. On a straight it lies across the middle of the cell; on every junction piece there is one across each arm, and the junction pour is held further back to give the crossing the depth it needs, exactly as nothing gets relaid up to a crossing in the real world. The bars sit inside the edge lines, so markings and crossing can both be on without a single overlapping painted face.","affects":"geometry"},"colorway":{"type":"choice","default":"city-asphalt","label":"Colorway","describe":"Curated kit-palette road scheme; sets all four zone colours at once. city-asphalt is the shipped mid-dark street grey of the refs. fresh-blacktop drops the whole ladder one step for a newly laid, almost black road with a pale gravel base course. sun-faded is a bleached, dusty grey main road. pale-concrete takes the top face up to light grey so the same tile reads as a poured concrete carriageway. Every scheme keeps three top-face tones one clear value step apart \u2014 on the clean default only the first of them is on the road, so a colorway there reads as the road colour plus its sub-base \u2014 and every colour is from the Little Tokyo menu.","options":["city-asphalt","fresh-blacktop","sun-faded","pale-concrete"]},"asphalt":{"type":"color","default":"#3C4145","label":"Asphalt field","describe":"The road itself. On the shipped clean tile (patchCount 0) this one albedo paints the ENTIRE top face and the 40 mm wearing course on the slab edge \u2014 every pixel of the road \u2014 so it is the colour to move for a different street. Once patches are on it is the dominant resurfacing course, about half of them plus their rims, and the other two patch tones read as steps away from it."},"patchLight":{"type":"color","default":"#4E5459","label":"Faded patch","describe":"Albedo of the older, sun-bleached asphalt courses \u2014 roughly a quarter of the top face once patchCount is 1 or more, and nothing at all on the clean default, where this zone emits no triangles. One desaturated step LIGHTER than the field. Push it further from the field for a heavily patched, much repaired street; bring it closer for a road resurfaced all in one go. Keep it grey: a tinted value here reads as spilled paint, not asphalt."},"patchDark":{"type":"color","default":"#2E3134","label":"Fresh patch","describe":"Albedo of the newest, blackest courses \u2014 roughly a fifth of the top face once patchCount is 1 or more, and nothing at all on the clean default, where this zone emits no triangles. One step DARKER than the field, the tone that makes a patch read as recently laid. Avoid taking it to true black: in a mid-tone field a near-black patch reads as a hole in the road rather than as new asphalt."},"base":{"type":"color","default":"#F0EFEC","label":"Sub-base","describe":"Albedo of the bottom 26 mm of the slab edge and the whole underside \u2014 the compacted aggregate the asphalt is laid on. It is deliberately several rungs lighter than the road: this band is the foundation line under a laid run of tiles, and at whole-asset framing the whole 50 mm section is under ten pixels, so anything closer in value than this renders as one black bar. Take it darker for a road laid straight onto dark earth, and expect the section to close up as you do. It never reaches the top face, so it cannot disturb the patchwork or the markings."},"paint":{"type":"color","default":"#F7F5EF","label":"Marking paint","describe":"Albedo of every painted marking \u2014 centre dashes, edge lines, stop bar and zebra bars alike. It emits no triangles at all while `lines` is none and `crossing` is off, so on the bare road it costs nothing. Keep it the lightest value in the scheme: paint reads by value against its own asphalt, so a mid-grey here disappears on a pale road. Take it warm off-white for old worn thermoplastic, or yellow-white for a street that marks in yellow."},"layout":{"type":"choice","default":"patchwork","label":"Paving layout (needs Patch count 1+)","describe":"How the top face is laid out \u2014 the surface re-plans from scratch per value, with a different cell grid and a different triangle count each time, not the same plan rescaled. patchwork is the default: a jittered square grid of many small unequal patches, the repeatedly repaired street of the refs. courses lays the road in three columns of wide transverse bands, so it reads as asphalt laid strip by strip across the carriageway. blocks uses a much coarser grid with heavy merging: a few big plates, the read of a concrete-slab road or a whole-lane resurfacing. Each layout also carries the step depth that suits it \u2014 12 mm on patchwork, 8 mm on the wide courses, 18 mm on the blocks. All three tile seamlessly. NOTE: this knob only has something to lay out once patchCount is 1 or more; at the shipped clean default of 0 all three values build the same flat road.","affects":"geometry","options":["patchwork","courses","blocks"]},"patchCount":{"type":"range","default":0,"label":"Patch count","describe":"How many patch divisions the 4 m tile is cut into per axis \u2014 the road surface is rebuilt at every value, so this sets patch SIZE by re-planning the grid, never by scaling, and the triangle count moves with it (roughly 40 triangles per added division). 0 is the DEFAULT and means OFF: a completely CLEAN road, one flat colour for the asphalt and one for the sub-base, with no patch, no step, no stain and no speckle anywhere \u2014 the tile to pave a whole street with, because nothing on it can repeat in a grid. 1 lays the carriageway as a single pour and 2-4 as a few big plates, a calm recently resurfaced road; 8 is the much-mended street of the refs, ~0.50 m cells (up to 1 m where two or four merge) quilted in three asphalt tones with the settled ones sunk on a real vertical rim; 10 is a busy fine-grained surface of small repairs. Scatter variation per instance rather than baking one tile everywhere. Under the courses layout it sets the number of transverse bands instead of a square grid.","affects":"geometry","min":0,"max":10,"step":1}},"presets":{"city-asphalt":{"asphalt":"#3C4145","patchLight":"#4E5459","patchDark":"#2E3134","base":"#F0EFEC","paint":"#F7F5EF"},"fresh-blacktop":{"asphalt":"#2E3134","patchLight":"#3C4145","patchDark":"#1B1D20","base":"#D8DADD","paint":"#F7F5EF"},"sun-faded":{"asphalt":"#4E5459","patchLight":"#6B7278","patchDark":"#3C4145","base":"#F0EFEC","paint":"#F7F5EF"},"pale-concrete":{"asphalt":"#6B7278","patchLight":"#8A9197","patchDark":"#4E5459","base":"#F0EFEC","paint":"#F7F5EF"}},"rev":1792408798,"materials":{"asphalt":{"kind":"stone","finish":"concrete"},"patchLight":{"kind":"stone","finish":"concrete"},"patchDark":{"kind":"stone","finish":"concrete"},"base":{"kind":"stone","finish":"concrete"},"paint":{"kind":"paint","finish":"matte"}},"materials_note":"what each colour zone is made of: `kind` and `finish` name a procedural PBR material in https://polyfork.dev/materials.mjs (dressByAlbedo finds a zone by its albedo in COLOR_0). A zone not listed has not been classified.","preview_v":1792462387,"mod_v":1792408798}