mapspinner 0.1.41 → 0.1.42

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.
@@ -0,0 +1,28 @@
1
+ Stack trace:
2
+ Frame Function Args
3
+ 0007FFFFA9C0 00021005FEBA (000210285F48, 00021026AB6E, 000000000000, 0007FFFF98C0) msys-2.0.dll+0x1FEBA
4
+ 0007FFFFA9C0 0002100467F9 (000000000000, 000000000000, 000000000000, 0007FFFFAC98) msys-2.0.dll+0x67F9
5
+ 0007FFFFA9C0 000210046832 (000210285FF9, 0007FFFFA878, 000000000000, 000000000000) msys-2.0.dll+0x6832
6
+ 0007FFFFA9C0 000210068F86 (000000000000, 000000000000, 000000000000, 000000000000) msys-2.0.dll+0x28F86
7
+ 0007FFFFA9C0 0002100690B4 (0007FFFFA9D0, 000000000000, 000000000000, 000000000000) msys-2.0.dll+0x290B4
8
+ 0007FFFFACA0 00021006A49D (0007FFFFA9D0, 000000000000, 000000000000, 000000000000) msys-2.0.dll+0x2A49D
9
+ End of stack trace
10
+ Loaded modules:
11
+ 000100400000 bash.exe
12
+ 7FFFAD120000 ntdll.dll
13
+ 7FFFABF70000 KERNEL32.DLL
14
+ 7FFFAAA90000 KERNELBASE.dll
15
+ 7FFFAC040000 USER32.dll
16
+ 000210040000 msys-2.0.dll
17
+ 7FFFAA440000 win32u.dll
18
+ 7FFFAC210000 GDI32.dll
19
+ 7FFFAA6B0000 gdi32full.dll
20
+ 7FFFAA9E0000 msvcp_win.dll
21
+ 7FFFAA7E0000 ucrtbase.dll
22
+ 7FFFABA60000 advapi32.dll
23
+ 7FFFAAF30000 msvcrt.dll
24
+ 7FFFAB070000 sechost.dll
25
+ 7FFFAC240000 RPCRT4.dll
26
+ 7FFFA9990000 CRYPTBASE.DLL
27
+ 7FFFAA930000 bcryptPrimitives.dll
28
+ 7FFFAC710000 IMM32.DLL
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mapspinner",
3
- "version": "0.1.41",
3
+ "version": "0.1.42",
4
4
  "description": "WebGL2 Earth-scale terrain rendering SDK for interactive globe applications",
5
5
  "main": "src/index.js",
6
6
  "exports": {
package/src/gl-render.js CHANGED
@@ -655,8 +655,12 @@ export async function initMapspinnerRender(gl, opts = {}) {
655
655
  // The analytic single-scatter radiance is HDR with small magnitudes; lift then
656
656
  // ACES tonemap (matches the WebGPU sky pass family). EXPOSURE tuned so the limb
657
657
  // glow + daylit sky read as an atmosphere without blowing out.
658
- vec3 c = radiance * 120.0;
658
+ vec3 c = radiance * 105.0; // 120->105: trim exposure so the bright daytime sky stops clipping to white
659
659
  vec3 mapped = clamp((c*(2.51*c+0.03))/(c*(2.43*c+0.59)+0.14), 0.0, 1.0); // ACES
660
+ // DAY SKY TOO WHITE (user 2026-06-14): ACES desaturates the bright daylit sky toward white. Push
661
+ // saturation back up so the day sky reads BLUE (sun disc stays white -- it is already near-neutral).
662
+ float skyLum = dot(mapped, vec3(0.2126, 0.7152, 0.0722));
663
+ mapped = clamp(mix(vec3(skyLum), mapped, 1.35), 0.0, 1.0);
660
664
  fragColor = vec4(pow(mapped, vec3(1.0/2.2)) * uSkyFade, 1.0);
661
665
  }`;
662
666
  function rawShader(type, source){ const s=gl.createShader(type); gl.shaderSource(s, source); gl.compileShader(s);
@@ -993,7 +997,7 @@ export async function initMapspinnerRender(gl, opts = {}) {
993
997
  gl.uniform1f(U('uLookSat'), _g('lookSat', 1.15));
994
998
  gl.uniform1f(U('uLookContrast'), _g('lookContrast', 1.08));
995
999
  { const o3=(n,d)=>{ const w=(typeof window!=='undefined'&&window['__'+n])||null; const v=(Array.isArray(w)&&w.length===3)?w:d; gl.uniform3f(U(n), v[0],v[1],v[2]); };
996
- o3('uOceanDeep',[0.008,0.025,0.06]); o3('uOceanShallow',[0.07,0.22,0.26]); o3('uOceanK',[0.030,0.012,0.0045]); }
1000
+ o3('uOceanDeep',[0.008,0.025,0.06]); o3('uOceanShallow',[0.07,0.22,0.26]); o3('uOceanK',[0.016,0.007,0.0028]); } // K halved (user 2026-06-14 'see the land under the water properly') = clearer water, bed visible through shallow/medium depth; deep basins still opaque
997
1001
  // (the continuous broad-shape field is now always on - the single terrain shape source -
998
1002
  // so its old on/off lever uniform was removed from terrain.glsl; nothing to set here.)
999
1003
  // LIVE biome ramp (window.__gen.state.biome, else tuned defaults) -- full-adjustability.
@@ -1582,8 +1582,12 @@ void main() {
1582
1582
  // ~0 and nadir fresnel ~0 made the whole shoreline INVISIBLE (coverage 0 at a bisected
1583
1583
  // waterline pose). Real shallow water still shows its surface (sky reflection + ripple):
1584
1584
  // floor the opacity once genuinely submerged so shorelines read as water.
1585
- alphaW = max(alphaW, 0.30 * smoothstep(0.3, 4.0, depthM));
1586
- alphaW *= smoothstep(0.0, 1.5, depthM);
1585
+ // SHALLOW TRANSPARENCY (user 2026-06-14: 'water fully transparent where it meets land, see the
1586
+ // bed through it'): floor cut 0.30->0.12 and pushed deeper (start 1.5m) so the bed shows through
1587
+ // the shoreline + shallows; deeper water still goes opaque via Beer-Lambert (1-Tavg). The contact
1588
+ // fade is widened (0->3m) so the exact waterline is clear, not a hard opaque rim.
1589
+ alphaW = max(alphaW, 0.12 * smoothstep(1.5, 8.0, depthM));
1590
+ alphaW *= smoothstep(0.0, 3.0, depthM);
1587
1591
  fragColor = vec4(pow(mappedW, vec3(1.0 / 2.2)), alphaW);
1588
1592
  return;
1589
1593
  }
@@ -1746,7 +1750,7 @@ void main() {
1746
1750
  // WIDENED TRANSITION (2026-06-13): srLo+0.2 -> srLo+0.4 so rock/grass and rock/sand/snow
1747
1751
  // boundaries have a wider blend band — the slope gradient between materials is no longer
1748
1752
  // a ~0.2-unit hard step but a ~0.4-unit gradual fade.
1749
- float srLo = max(slopeRock.x, 0.05), srHi = max(slopeRock.y, srLo + 0.35); // 0.18->0.10->0.05: rock slope gate MORE SENSITIVE so even gentle slopes (~18deg+) pick up as rock (user 2026-06-14, repeated). Stays above truly-flat (rockSlope~0).
1753
+ float srLo = max(slopeRock.x, 0.05), srHi = max(slopeRock.y, srLo + 0.25); // 0.18->0.10->0.05 lo; band +0.35->+0.25 (user 2026-06-14 repeated 'rock face angle more sensitive'): rock fully engages by a GENTLER slope. Stays above truly-flat (rockSlope~0).
1750
1754
  float wRockSlope = smoothstep(mix(srLo, 0.50, sandRegion), mix(srHi, 0.70, sandRegion), rockSlope);
1751
1755
  // WARPED BIOME BAND EDGES (user 2026-06-14: the snow/rock lines were STRAIGHT horizontal contours
1752
1756
  // viewed side-on; the vTexWarp domain warp was too low-freq (>1.8km waves = ~constant over one
@@ -37,7 +37,7 @@ const DEFAULTS = {
37
37
  bcLowland: [0.20,0.34,0.15], bcGrass: [0.26,0.40,0.17], bcRock: [0.52,0.43,0.34], // bcRock -> a clearly WARMER TAN-GREY (R>G>B) so it reads as ROCK when lit, not olive-green (the [0.46,0.42,0.37] near-grey read green next to the biome). state.biome OVERRIDES gl-render defaults via window.__gen.
38
38
  bcSnow: [0.92,0.94,0.97],
39
39
  bandEdgesLo: [150.0,1200.0], bandEdgesHi: [3500.0,6500.0], snowEdges: [6000.0,8500.0], // 8000/10500->6000/8500 (user 2026-06-11 'snowy mountains disappeared' -- see gl-render snowEdges note) // snowEdges 5200/7000->8000/10500 (user 2026-06-10 'entire terrain white': the rock-by-height fix unmasked snow gates tuned pre-4x; full snow from 5.2km whitened the 11.6km massifs; coldSnow onset = snowEdges.x*0.5 follows) // bandEdgesHi 1600/3200->3500/6500 (user 2026-06-10 'rockface everywhere'): tuned on the pre-4x terrain; with 11.6km peaks everything above 3200m read rock BY HEIGHT alone -- rescale the treeline to the new elevation range
40
- seaDepthM: 3000.0, slopeRock: [0.0,0.3], // [0.0,0.3] USER-SET 2026-06-13
40
+ seaDepthM: 3000.0, slopeRock: [0.0,0.22], // hi 0.3->0.22 (user 2026-06-14 'rock face angle more sensitive, gentler slopes turn to rock'): rock fully engages by ~0.22 slope; lo stays 0.0 so truly-flat (rockSlope~0) keeps grass
41
41
  },
42
42
  // REAL-WORLD LOOK overhaul (terraformable lighting/shading levers; applyShaderGlobals sets window
43
43
  // globals; gl-render reads them via _g()). Beer-Lambert ocean, biome sat, mottle, sky-fill relief,
@@ -46,7 +46,7 @@ const DEFAULTS = {
46
46
  exposure: 1.0, skyFill: 0.45, biomeSat: 0.72, variationAmt: 0.04, colorVar: 0.5, vertexAO: 1.0, reliefShade: 2.5, // variationAmt 0.08->0.04 (user 2026-06-10 'blotchy': the ~50km value mottle painted light/dark patches across the massifs)
47
47
  nightFloor: 0.16, termWidth: 0.25, terminatorGlow: 0.30, lookSat: 1.15, lookContrast: 1.08, // nightFloor 0.05->0.16: no black night terrain (2026-06-09)
48
48
  detailOverlay: 6.0, hazeMul: 0.65, // 2026-06-10 'pale hazy + featureless': perlin-everywhere albedo+elevation fbm (user-tuned 6) + aerial-perspective strength cut
49
- ocean: { deep: [0.008,0.025,0.06], shallow: [0.07,0.22,0.26], k: [0.030,0.012,0.0045] },
49
+ ocean: { deep: [0.008,0.025,0.06], shallow: [0.07,0.22,0.26], k: [0.016,0.007,0.0028] }, // k halved (user 2026-06-14 'see the land under the water'): clearer water, bed visible through shallow/medium depth. OVERRIDES the gl-render uOceanK default via window.__uOceanK.
50
50
  },
51
51
  // HPF band scales (multipliers on the anchor-field band base values; anchor-field.setBandScales).
52
52
  hpf: {