@tileflow/dev 0.1.0-alpha.30 → 0.1.0-alpha.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/server.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  parseTileflowLineBackgroundGlyphPath,
6
6
  tileflowArtifactSessionSchemaVersion,
7
7
  tileflowLineBackgroundGlyphRoute
8
- } from "./chunk-L56FLV4R.js";
8
+ } from "./chunk-2QXKVQ6O.js";
9
9
  import {
10
10
  getTileflowAssetBasePath,
11
11
  getTileflowAssetFileName,
@@ -13,7 +13,7 @@ import {
13
13
  normalizeTileflowBasePath,
14
14
  resolveTileflowArtifactPublicUrls
15
15
  } from "./chunk-UTRO4IBQ.js";
16
- import "./chunk-A2VTI43Y.js";
16
+ import "./chunk-IR22ZTQW.js";
17
17
  import "./chunk-7C4F6GAX.js";
18
18
  import {
19
19
  TileflowStyleValidationError
@@ -22,7 +22,7 @@ import {
22
22
  TileflowValidationError,
23
23
  defaultTileflowApiUrl,
24
24
  defaultTileflowConfigPath
25
- } from "./chunk-6MGFMKG3.js";
25
+ } from "./chunk-AQUGMUZW.js";
26
26
  import "./chunk-D4OE4ITL.js";
27
27
  import "./chunk-ONYQNLNA.js";
28
28
 
@@ -62,42 +62,20 @@ prepared local-font bundle before authentication until managed font storage is a
62
62
  map that declares `glyphs` replaces the inherited local provider atomically; the URL-backed map is
63
63
  complete as declared and independent of its World selection.
64
64
 
65
- For Streets styles whose vegetation layer declares `tileflow:vegetation-mode = 3d`, the built-in
66
- preview uses the same portable circle fallback as capture and the published framework adapters by
67
- default. This makes an ordinary `tileflow preview` session WYSIWYG with production and visual
68
- baselines. Append `?treeRenderer=simple` or `?treeRenderer=complex` to opt into the experimental,
69
- preview-only instanced renderer described below; that explicit mode is not capture evidence.
70
-
71
- The experimental renderer uses source height and crown diameter when present, distinguishes palms,
72
- columnar cypresses, conifers, and three broadleaf silhouettes from the bound botanical fields, and
73
- falls back to deterministic broadleaf variety and dimensions when tags are missing. Bark color,
74
- crown palettes, height scale, and crown scale come from `vegetation.threeDimensional`; the preview
75
- does not maintain a second hard-coded appearance contract. During camera
76
- gestures the existing 3D batch remains visible while native circles cover newly arriving tiles; the
77
- batch refreshes when movement ends without waiting for the whole map to become idle. Source-tile
78
- events are rate-limited and unchanged instance selections do not upload new GPU buffers. The
79
- preview caps one view at 3,000 trees and uses zoom-dependent density. Both detailed modes use thin,
80
- tapered trunks, branches that enter the crown, softly shaded overlapping ellipsoids, and stable
81
- per-tree scale and rotation. `simple` reduces lobe and segment counts; `complex` keeps the complete
82
- round, open, avenue, pine, cypress, and palm silhouettes. Each archetype remains fused into one
83
- reusable geometry and every complete tree remains
84
- one GPU instance, so the additional detail introduces no extra draw calls. The experimental
85
- renderer defaults to its WebGL2 backend, which
86
- draws those instances directly without a Three.js scene traversal; append `&treeBackend=three` for
87
- the compatibility backend. Use `?treeRenderer=circle`, `?treeRenderer=simple`, or
88
- `?treeRenderer=complex&treeBenchmark=1` to compare identical scenes; the benchmark reports frame
89
- p95, query, selection, build and render time, draw calls, and triangle count in the tree status badge.
90
- Visible candidates come from MapLibre's worker-built tile index instead of a second copy of the
91
- vector source. Terrain height is sampled on a fixed 5-by-5 viewport grid and interpolated per tree,
92
- avoiding hundreds of synchronous terrain queries when a new batch first appears.
93
- The separate `TREES ON/OFF` control sits below the building `3D ON/OFF` control and pauses tree
94
- refresh work while disabled. Both choices survive reloads and shared links through the
95
- `buildings3d=on|off` and `trees3d=on|off` URL parameters.
96
-
97
- Detailed trees retain the compiler's scene order: they render above road and pedestrian surfaces,
98
- ordinary building geometry, and detailed landmark models. Map labels and other annotations remain
99
- above the physical scene, while road names and route references stay attached to the carriageway
100
- below buildings and trees.
65
+ With both controls off, the built-in preview draws the style as compiled, as Capture and the
66
+ published framework adapters draw it: flat trees, building layers marked for the 3D control left
67
+ hidden, and no street lights. This keeps an ordinary `tileflow preview` session WYSIWYG with
68
+ production and visual baselines.
69
+
70
+ The `3D ON/OFF` and `TREES ON/OFF` controls mount Core's 3D layers as an application does, from
71
+ the description the compiled style publishes. When the style describes 3D buildings
72
+ (`tileflow:buildings`), `3D ON` raises them with `createTileflowBuildings3D` in place of the
73
+ compiled extrusion and lights the streets with `createTileflowStreetLights` where the style
74
+ describes them. When it describes 3D trees (`tileflow:vegetation`), `TREES ON` stands them with
75
+ `createTileflowTrees3D`, which hides the style's flat trees while they stand. Every look the
76
+ preview shows comes from the map's modules; the preview holds no appearance of its own, and the
77
+ theme on screen supplies the sun. Neither mode is capture evidence. Both choices survive reloads
78
+ and shared links through the `buildings3d=on|off` and `trees3d=on|off` URL parameters.
101
79
 
102
80
  The same control toggles any compiled layer whose metadata contains
103
81
  `tileflow:3d-toggle = building`. It switches the building volumes independently from the camera,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tileflow/dev",
3
- "version": "0.1.0-alpha.30",
3
+ "version": "0.1.0-alpha.31",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Node development utilities for Tileflow configs and builds.",
6
6
  "type": "module",
@@ -83,7 +83,7 @@
83
83
  "dependencies": {
84
84
  "@mapbox/vector-tile": "3.0.0",
85
85
  "@maplibre/maplibre-gl-style-spec": "24.8.5",
86
- "@tileflow/core": ">=0.1.0-alpha.32 <0.1.0-beta.0",
86
+ "@tileflow/core": ">=0.1.0-alpha.34 <0.1.0-beta.0",
87
87
  "chokidar": "4.0.3",
88
88
  "fflate": "0.8.3",
89
89
  "fontkit": "2.0.4",