Document doors, routes and street furniture; refresh screenshots
City guide, architecture and README describe doors and back doors, door-to-door routes along alleys, and the street furniture on folder pavements. Documentation screenshots retaken on the current build, including a street-level view of doorways, a streetlight and routes.
@@ -16,7 +16,7 @@ indexing API and the browser frontend (plain ES modules and WebGL2, no build ste
|
||||
|  | **2D map**: a squarified treemap of every file, sized by lines or references, with source code rendered right on the tiles as you zoom in. |
|
||||
|  | **3D landscape**: the same map extruded, orbit, pan and dolly around it. |
|
||||
|  | **City**: folders become districts and blocks, files become buildings (footprint from lines, height from complexity, lit windows from definitions). Select a file to see its imports as cyan routes and its dependents as pulsing magenta routes along the streets. |
|
||||
|  | **Walk and fly** at street level with signs on every wall, folder street signs on the corners, source code on the facade in front of you, wandering residents and a city wall covered in posters. |
|
||||
|  | **Walk and fly** at street level past lit doorways, streetlights, bins, benches and trees, with signs on every wall, folder street signs on the corners, source code on the facade in front of you, wandering residents and a city wall covered in posters. |
|
||||
|
||||
Also:
|
||||
|
||||
|
||||
@@ -77,17 +77,27 @@ Plain ES modules, no framework, no build step.
|
||||
nested pavements a few centimetres apart can't z-fight).
|
||||
2. **Buildings and wall:** instanced boxes. The city shader adds procedural windows (lit share from
|
||||
definition count), neon edges, a concrete wall and exponential fog.
|
||||
3. **Effects:** additive and never occluding. Search beacons, fire and smoke particles (stateless,
|
||||
3. **Doors and street furniture:** small instanced boxes (lit doorways, lamp posts and heads, bins,
|
||||
benches, trees, hydrants, post boxes) drawn with a separate shader variant, and only within a few
|
||||
hundred metres of the camera. Streetlights stand on folder boundaries, and everything sits on
|
||||
folder pavements, never the road.
|
||||
4. **Effects:** additive and never occluding. Lamp light pools, search beacons, fire and smoke particles (stateless,
|
||||
animated in the vertex shader), residents (procedural stick-figure sprites), street routes
|
||||
(mitred ribbons with chevrons or pulsing dashes, kept in right-hand lanes) and import arcs.
|
||||
4. **Signs:** textured quads from the label atlas, depth-tested but not depth-writing. A shader test
|
||||
5. **Signs:** textured quads from the label atlas, depth-tested but not depth-writing. A shader test
|
||||
discards any quad face that would read mirrored, which is how two-faced blade signs work.
|
||||
|
||||
### Routing
|
||||
|
||||
- **Grid:** a 3 m occupancy grid blocks buildings (grown by 0.5 m) and the city wall, and makes
|
||||
pavements slightly dearer than roads.
|
||||
- **Search:** one Dijkstra run from the selected building's doors reaches every import and
|
||||
- **Grid:** a 3 m occupancy grid blocks buildings (grown by 2 m, so a ribbon in its lane can't clip a
|
||||
wall) and the city wall, and makes pavements slightly dearer than roads.
|
||||
- **Doors:** each building gets one door, centred where possible and clear of its corners. Street
|
||||
doors face the nearest open street. Buildings with no frontage get a back door whose path follows
|
||||
a distance-to-street field computed once on a 0.5 m grid (chamfer sweeps until stable) through the
|
||||
2.4 m alleys.
|
||||
- **Search:** one Dijkstra run from the selected building's doorstep reaches every import and
|
||||
dependent (paths cost the same both ways). It uses float64 distances and a settled set.
|
||||
- **Shaping:** routes are straightened by line-of-sight, extended into both buildings, and boxed-in
|
||||
targets fall back to the nearest reachable street.
|
||||
- **Shaping:** street paths are straightened by line-of-sight (sampled every quarter cell), then joined
|
||||
to each building's door path: inside the building, out through the doorway, along the alley, onto
|
||||
the street. Alley points are drawn narrower and centred. Buildings with no door fall back to the
|
||||
nearest reachable street.
|
||||
|
||||
@@ -21,6 +21,9 @@ scale, so a large repository is a large city.
|
||||
| **Yellow tape** rising across the walls | Dependabot alert (on the manifest file) |
|
||||
| **Red tape** falling across the walls | Code scanning alert |
|
||||
| **Light beam** into the sky | A search result |
|
||||
| **Lit doorway** | The building's door: facing the street, or a back door onto an alley for files in the middle of a folder |
|
||||
| **Streetlights** with pools of light | The edges of each folder: lights stand on its boundary, at every corner and every 20 m or so |
|
||||
| **Bins, benches, trees, hydrants, post boxes** | Street furniture on the folder's pavement. Purely for atmosphere |
|
||||
| **Cyan chevrons** on the road | Route to a file the selected file imports (**amber** if the import was inferred) |
|
||||
| **Pulsing magenta dashes** on the road | Route from a file that imports the selected file |
|
||||
| **Arcs** in the sky | The same import relationships, as the crow flies |
|
||||
@@ -48,7 +51,9 @@ the selected file's routes.
|
||||
## Following dependencies
|
||||
|
||||
Select a file (click it, search for it, or pick it from the sidebar). Routes appear on the streets
|
||||
to everything it imports and from everything that imports it. With a file selected, switching to
|
||||
to everything it imports and from everything that imports it. Every route leaves through the
|
||||
building's door, follows the alley to the street if it's a back door, and goes in through the other
|
||||
building's door. Alley stretches are drawn thinner. With a file selected, switching to
|
||||
**Walk** puts you at its door facing along the first route: follow the arrows.
|
||||
|
||||
## Tour and links
|
||||
|
||||
|
Before Width: | Height: | Size: 426 KiB After Width: | Height: | Size: 632 KiB |
|
Before Width: | Height: | Size: 393 KiB After Width: | Height: | Size: 374 KiB |
|
After Width: | Height: | Size: 266 KiB |
|
Before Width: | Height: | Size: 757 KiB After Width: | Height: | Size: 769 KiB |
|
Before Width: | Height: | Size: 530 KiB After Width: | Height: | Size: 531 KiB |
|
Before Width: | Height: | Size: 334 KiB After Width: | Height: | Size: 334 KiB |
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 108 KiB |