Streets: sidewalks, road curves, junctions and roundabouts
Deploy web Studio / deploy (push) Successful in 4m31s

Roads take sidewalks (none, both, left, right): 12 cm high paving with
kerb faces drawn where they face the viewer. Road curve (radius, angle,
left/right) carries a street round a bend; centre lines are true arcs
when cut and offset, so curve joints are seamless. A road ending on
another road's centre line opens that road's kerb and sidewalk (T
junction); two roads ending at one corner close it. Roundabout: ring
radius and width, one or two lanes, up to four arms with flared kerbs,
splitter islands, give-way lines on the entry side (traffic on the left
or right) and a central island with apron.

Studio: a road run drawn corner by corner gets a curve in each corner
(prefab meta `corner`). Tooltips list the streets each one meets.
Engine: open `polyline` primitive (Prim::Poly open) so dashes run on
round curves. examples/streets and a Streets demo in the web Studio;
MCP guidance, docs. ROADMAP: backlog 5-7 done; multi-select and the
hosted copy marked done.

Tests: Rust 72, Studio 113, web 95.
This commit is contained in:
grabowski committed 2026-10-25 12:32:52 +07:00
1 parent 2442966743
commit c91d63663b
24 files changed
+989 -29

No files matched your search

+13 -3
View File
@@ -39,15 +39,16 @@ isokit build C:/dev/myproject/site-view # dist/index.html, no server needed
```
Try the demos: `isokit studio examples/demo` (a works site),
`isokit studio examples/house` (a furnished house built from parts) and
`isokit studio examples/factory` (presses, conveyors and robot arms).
`isokit studio examples/house` (a furnished house built from parts),
`isokit studio examples/factory` (presses, conveyors and robot arms) and
`isokit studio examples/streets` (sidewalks, curves, junctions, a roundabout).
### Studio (for everyone)
| Do | How |
|---|---|
| Add | pick an object on the left, click on the map (Shift-click places several) |
| Draw | walls, fences, hedges, roads: drag along the map, or click corner after corner for a run around a plot (double-click / Enter ends it, the first corner closes it); ends snap onto the walls and fences they meet. Floors, areas, buildings, roofs, rugs: drag a rectangle |
| Draw | walls, fences, hedges, roads: drag along the map, or click corner after corner for a run around a plot (double-click / Enter ends it, the first corner closes it); ends snap onto the walls and fences they meet; a road run gets a curve in each corner. Floors, areas, buildings, roofs, rugs: drag a rectangle |
| Select | click it on the map or in the object list; click a wall or fence again to select every piece joined to it |
| Several | Ctrl+click (map or list) adds or takes out one, Shift+click in the list a range, Shift+drag on the map a box, Ctrl+A all; then drag one to move them all, arrows, R, Ctrl+D, Delete and the property form work on all of them |
| Move | drag it, or arrow keys by the snap step (0.1 / 0.5 / 1 / 5 m) |
@@ -201,6 +202,14 @@ off and puts them on the next belt or a pallet, in step with them. Tooltips
show the numbers. `examples/factory` (Factory demo in the web Studio) has a
few lines.
Streets: a Road can have sidewalks on both sides or one (12 cm high paving
with kerbs). A Road curve carries a street round a bend, a road ending on
another road's centre line makes a junction (the sidewalk opens there), and a
Roundabout has up to four arms with flared kerbs, splitter islands and
give-way lines for traffic on the left or right. Roads meet by their centre
lines, so put the ends on each other. `examples/streets` (Streets demo in the
web Studio) is a small town quarter.
Animations (fans, smoke, fish, traffic) step on about ten times a second by
default ("light"): running CSS animations repaint the whole drawing every frame,
which keeps a slow laptop busy. The ▷ button in the view toolbar switches
@@ -236,6 +245,7 @@ web/ web Studio shell: WASM backend for studio.js, projects, f
examples/demo demo project (works site)
examples/house house built from parts (walls, windows, doors, floors, furniture, roof)
examples/factory production yard: producers, conveyors, robot arms
examples/streets town quarter: sidewalks, curves, junctions, a roundabout
deploy/Caddyfile the web Studio's vhost on the buildfor.life web server (s1)
```