Latest commit

History

178 Commits

Folders and files

NameName
Last commit message
Last commit date

FireViewer Spatial

FireViewer Spatial contains the deterministic tooling and contracts used to build, validate, package and consume measured geographic maps and observed temporal spatial layers.

This repository is not an emergency-response system, an official geographic authority or a certified fire-propagation predictor. A valid package proves only the checks recorded by its own manifests and receipts.

Role in FireViewer

The spatial subsystem is deliberately separate from evidence acquisition, visual detection, multimodal assessment and Part.4 fire-state reconstruction.

flowchart TD
sources["Measured geographic sources and immutable revisions"] --> maps["Part.1: deterministic tiled map production"]
maps --> packages["OpenUSD and web-view packages"]
packages --> checks["Structural, geometric, provenance and visual gates"]
checks --> consumer["Backend and 2D or 3D consumers"]
observations["Reviewed temporal geographic inputs"] --> timeline["Separate perimeter timeline package"]
timeline --> consumer
Loading

Incident observations and reconstructed fire states can later reference a measured map, but they do not rewrite the map itself.

Implemented areas

  • measured terrain grids and elevation handling;
  • orthophoto-derived ground textures under explicit source/provenance rules;
  • deterministic levels of detail;
  • explicit GPS asset placement and placement inventories;
  • portable OpenUSD scene composition and package manifests;
  • resumable tile-sharded Map Builder execution with deterministic checkpoint ownership;
  • dependent final assembly after shard completion;
  • tiled browser packages with progressive terrain/placement loading and shared prototypes;
  • asset-free production that preserves an explicitly empty prototype namespace across resume;
  • observed affected/active temporal layers without silently inventing missing observations;
  • consumer schemas that pin package, revision, build, contract and hash;
  • structural, geographic, provenance, dependency, size and human-review gates;
  • provider-specific deployment adapters kept outside the deterministic core contracts.

Map Builder boundary

The Map Builder receives an immutable request, a caller-provided scratch directory and an output directory. Cloud launch, object storage, credentials and publication are execution adapters rather than part of the geographic contract.

The terminal completion receipt is written last. A partial output without its required completion state must not be presented as a valid production map.

A successful unit test, container run or cloud replay does not qualify every map size, source condition, browser or publication route.

Measured maps on Hugging Face

Real retained measured-map packages are hosted in:

fireviewer/simple-measured-scenes-v1

Current retained production includes Die / Justin in Drôme, France.

Viewer compatibility rule

Existing published map directories, filenames and package paths can be consumed directly by the FireViewer viewer and other clients.

Do not rename, move, flatten or reorganise existing published map packages as part of repository/documentation cleanup.

A structural migration requires an explicit versioned migration contract and coordinated updates to every consumer.

reference/map-builder-reference-v1

The repository currently retains reference/map-builder-reference-v1.

This directory is a semantic validation baseline for the AWS Map Builder migration, containing request identity, hashes, metrics and validation receipts. It is not a production map and must not be listed as one.

It is intentionally left at its current path. Moving it merely to make the tree look cleaner would create unnecessary compatibility risk and is outside the documentation update.

Maps, wildfire state and simulation are different layers

FireViewer keeps these concepts separate:

  • measured map — geographic context produced from measured source products;
  • observation — dated evidence about a wildfire or its environment;
  • Part.4 3.3 reconstruction — deterministic probabilistic fire-state reconstruction from reviewed spatial observations;
  • simulation — generated scenario or reproduction material;
  • viewer derivative — runtime representation optimised for exploration.

A viewer GLB never replaces authoritative map/source contracts. A simulation never becomes measured geography or real-event evidence.

Daily fire-state reconstruction belongs to the backend's Part.4 3.3, not this map builder. It uses a private dated spatial seed and an uncalibrated fusion profile. Map and timeline tooling must not be described as autonomous perimeter inference, and a valid map package does not qualify a reconstructed fire state. See the reconstruction boundary.

Invariants

  • Geographic map, temporal wildfire state, simulation and visualisation remain separate.
  • Observed affected and active areas remain distinct.
  • Unknown state between observations is represented as unknown or explicitly reconstructed, not silently treated as observation.
  • Consumers reference immutable artifacts rather than rebuilding them implicitly.
  • Derived viewer files do not replace authoritative JSON/GeoJSON/OpenUSD provenance.
  • Deliverables keep source, licence, contract, revision and SHA-256 provenance where applicable.
  • Temporary source rasters are not silently redistributed in final packages.
  • Synthetic tests, cloud execution and human visual acceptance are separate gates.

Repository guide

Validation

A safe contract smoke that does not start map production is:

python -m pytest -q test_scene_consumer_contract.py

Subsystem tests require the dependencies named by their corresponding requirements files. Cloud acquisition, Blender import, OpenUSD/Kit validation, rendering and final visual review remain separate acceptance gates.

Data, security and licensing

Generated production packages and source rasters are not committed to the source repository. Infrastructure state, credentials, private requests and operator-specific values remain untracked.

The canonical FireViewer documentation defines the cross-project architecture, resource status, evidence rules and current maturity.

Code is licensed under AGPL-3.0-or-later. Original documentation is available under CC BY 4.0. Geographic sources and 3D assets retain their own licences and attribution requirements.

See SECURITY.md for responsible disclosure.

Contact

Research, mapping, provenance, rights or infrastructure: unicornwhodev@gmail.com.

About

Deterministic measured maps, observed temporal layers, portable spatial packages, and validation for FireViewer.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

178 Commits

Folders and files

NameName
Last commit message
Last commit date

FireViewer Spatial

FireViewer Spatial contains the deterministic tooling and contracts used to build, validate, package and consume measured geographic maps and observed temporal spatial layers.

This repository is not an emergency-response system, an official geographic authority or a certified fire-propagation predictor. A valid package proves only the checks recorded by its own manifests and receipts.

Role in FireViewer

The spatial subsystem is deliberately separate from evidence acquisition, visual detection, multimodal assessment and Part.4 fire-state reconstruction.

flowchart TD
sources["Measured geographic sources and immutable revisions"] --> maps["Part.1: deterministic tiled map production"]
maps --> packages["OpenUSD and web-view packages"]
packages --> checks["Structural, geometric, provenance and visual gates"]
checks --> consumer["Backend and 2D or 3D consumers"]
observations["Reviewed temporal geographic inputs"] --> timeline["Separate perimeter timeline package"]
timeline --> consumer
Loading

Incident observations and reconstructed fire states can later reference a measured map, but they do not rewrite the map itself.

Implemented areas

  • measured terrain grids and elevation handling;
  • orthophoto-derived ground textures under explicit source/provenance rules;
  • deterministic levels of detail;
  • explicit GPS asset placement and placement inventories;
  • portable OpenUSD scene composition and package manifests;
  • resumable tile-sharded Map Builder execution with deterministic checkpoint ownership;
  • dependent final assembly after shard completion;
  • tiled browser packages with progressive terrain/placement loading and shared prototypes;
  • asset-free production that preserves an explicitly empty prototype namespace across resume;
  • observed affected/active temporal layers without silently inventing missing observations;
  • consumer schemas that pin package, revision, build, contract and hash;
  • structural, geographic, provenance, dependency, size and human-review gates;
  • provider-specific deployment adapters kept outside the deterministic core contracts.

Map Builder boundary

The Map Builder receives an immutable request, a caller-provided scratch directory and an output directory. Cloud launch, object storage, credentials and publication are execution adapters rather than part of the geographic contract.

The terminal completion receipt is written last. A partial output without its required completion state must not be presented as a valid production map.

A successful unit test, container run or cloud replay does not qualify every map size, source condition, browser or publication route.

Measured maps on Hugging Face

Real retained measured-map packages are hosted in:

fireviewer/simple-measured-scenes-v1

Current retained production includes Die / Justin in Drôme, France.

Viewer compatibility rule

Existing published map directories, filenames and package paths can be consumed directly by the FireViewer viewer and other clients.

Do not rename, move, flatten or reorganise existing published map packages as part of repository/documentation cleanup.

A structural migration requires an explicit versioned migration contract and coordinated updates to every consumer.

reference/map-builder-reference-v1

The repository currently retains reference/map-builder-reference-v1.

This directory is a semantic validation baseline for the AWS Map Builder migration, containing request identity, hashes, metrics and validation receipts. It is not a production map and must not be listed as one.

It is intentionally left at its current path. Moving it merely to make the tree look cleaner would create unnecessary compatibility risk and is outside the documentation update.

Maps, wildfire state and simulation are different layers

FireViewer keeps these concepts separate:

  • measured map — geographic context produced from measured source products;
  • observation — dated evidence about a wildfire or its environment;
  • Part.4 3.3 reconstruction — deterministic probabilistic fire-state reconstruction from reviewed spatial observations;
  • simulation — generated scenario or reproduction material;
  • viewer derivative — runtime representation optimised for exploration.

A viewer GLB never replaces authoritative map/source contracts. A simulation never becomes measured geography or real-event evidence.

Daily fire-state reconstruction belongs to the backend's Part.4 3.3, not this map builder. It uses a private dated spatial seed and an uncalibrated fusion profile. Map and timeline tooling must not be described as autonomous perimeter inference, and a valid map package does not qualify a reconstructed fire state. See the reconstruction boundary.

Invariants

  • Geographic map, temporal wildfire state, simulation and visualisation remain separate.
  • Observed affected and active areas remain distinct.
  • Unknown state between observations is represented as unknown or explicitly reconstructed, not silently treated as observation.
  • Consumers reference immutable artifacts rather than rebuilding them implicitly.
  • Derived viewer files do not replace authoritative JSON/GeoJSON/OpenUSD provenance.
  • Deliverables keep source, licence, contract, revision and SHA-256 provenance where applicable.
  • Temporary source rasters are not silently redistributed in final packages.
  • Synthetic tests, cloud execution and human visual acceptance are separate gates.

Repository guide

Validation

A safe contract smoke that does not start map production is:

python -m pytest -q test_scene_consumer_contract.py

Subsystem tests require the dependencies named by their corresponding requirements files. Cloud acquisition, Blender import, OpenUSD/Kit validation, rendering and final visual review remain separate acceptance gates.

Data, security and licensing

Generated production packages and source rasters are not committed to the source repository. Infrastructure state, credentials, private requests and operator-specific values remain untracked.

The canonical FireViewer documentation defines the cross-project architecture, resource status, evidence rules and current maturity.

Code is licensed under AGPL-3.0-or-later. Original documentation is available under CC BY 4.0. Geographic sources and 3D assets retain their own licences and attribution requirements.

See SECURITY.md for responsible disclosure.

Contact

Research, mapping, provenance, rights or infrastructure: unicornwhodev@gmail.com.

About

Deterministic measured maps, observed temporal layers, portable spatial packages, and validation for FireViewer.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

178 Commits

Folders and files

NameName
Last commit message
Last commit date

FireViewer Spatial

FireViewer Spatial contains the deterministic tooling and contracts used to build, validate, package and consume measured geographic maps and observed temporal spatial layers.

This repository is not an emergency-response system, an official geographic authority or a certified fire-propagation predictor. A valid package proves only the checks recorded by its own manifests and receipts.

Role in FireViewer

The spatial subsystem is deliberately separate from evidence acquisition, visual detection, multimodal assessment and Part.4 fire-state reconstruction.

flowchart TD
sources["Measured geographic sources and immutable revisions"] --> maps["Part.1: deterministic tiled map production"]
maps --> packages["OpenUSD and web-view packages"]
packages --> checks["Structural, geometric, provenance and visual gates"]
checks --> consumer["Backend and 2D or 3D consumers"]
observations["Reviewed temporal geographic inputs"] --> timeline["Separate perimeter timeline package"]
timeline --> consumer
Loading

Incident observations and reconstructed fire states can later reference a measured map, but they do not rewrite the map itself.

Implemented areas

  • measured terrain grids and elevation handling;
  • orthophoto-derived ground textures under explicit source/provenance rules;
  • deterministic levels of detail;
  • explicit GPS asset placement and placement inventories;
  • portable OpenUSD scene composition and package manifests;
  • resumable tile-sharded Map Builder execution with deterministic checkpoint ownership;
  • dependent final assembly after shard completion;
  • tiled browser packages with progressive terrain/placement loading and shared prototypes;
  • asset-free production that preserves an explicitly empty prototype namespace across resume;
  • observed affected/active temporal layers without silently inventing missing observations;
  • consumer schemas that pin package, revision, build, contract and hash;
  • structural, geographic, provenance, dependency, size and human-review gates;
  • provider-specific deployment adapters kept outside the deterministic core contracts.

Map Builder boundary

The Map Builder receives an immutable request, a caller-provided scratch directory and an output directory. Cloud launch, object storage, credentials and publication are execution adapters rather than part of the geographic contract.

The terminal completion receipt is written last. A partial output without its required completion state must not be presented as a valid production map.

A successful unit test, container run or cloud replay does not qualify every map size, source condition, browser or publication route.

Measured maps on Hugging Face

Real retained measured-map packages are hosted in:

fireviewer/simple-measured-scenes-v1

Current retained production includes Die / Justin in Drôme, France.

Viewer compatibility rule

Existing published map directories, filenames and package paths can be consumed directly by the FireViewer viewer and other clients.

Do not rename, move, flatten or reorganise existing published map packages as part of repository/documentation cleanup.

A structural migration requires an explicit versioned migration contract and coordinated updates to every consumer.

reference/map-builder-reference-v1

The repository currently retains reference/map-builder-reference-v1.

This directory is a semantic validation baseline for the AWS Map Builder migration, containing request identity, hashes, metrics and validation receipts. It is not a production map and must not be listed as one.

It is intentionally left at its current path. Moving it merely to make the tree look cleaner would create unnecessary compatibility risk and is outside the documentation update.

Maps, wildfire state and simulation are different layers

FireViewer keeps these concepts separate:

  • measured map — geographic context produced from measured source products;
  • observation — dated evidence about a wildfire or its environment;
  • Part.4 3.3 reconstruction — deterministic probabilistic fire-state reconstruction from reviewed spatial observations;
  • simulation — generated scenario or reproduction material;
  • viewer derivative — runtime representation optimised for exploration.

A viewer GLB never replaces authoritative map/source contracts. A simulation never becomes measured geography or real-event evidence.

Daily fire-state reconstruction belongs to the backend's Part.4 3.3, not this map builder. It uses a private dated spatial seed and an uncalibrated fusion profile. Map and timeline tooling must not be described as autonomous perimeter inference, and a valid map package does not qualify a reconstructed fire state. See the reconstruction boundary.

Invariants

  • Geographic map, temporal wildfire state, simulation and visualisation remain separate.
  • Observed affected and active areas remain distinct.
  • Unknown state between observations is represented as unknown or explicitly reconstructed, not silently treated as observation.
  • Consumers reference immutable artifacts rather than rebuilding them implicitly.
  • Derived viewer files do not replace authoritative JSON/GeoJSON/OpenUSD provenance.
  • Deliverables keep source, licence, contract, revision and SHA-256 provenance where applicable.
  • Temporary source rasters are not silently redistributed in final packages.
  • Synthetic tests, cloud execution and human visual acceptance are separate gates.

Repository guide

Validation

A safe contract smoke that does not start map production is:

python -m pytest -q test_scene_consumer_contract.py

Subsystem tests require the dependencies named by their corresponding requirements files. Cloud acquisition, Blender import, OpenUSD/Kit validation, rendering and final visual review remain separate acceptance gates.

Data, security and licensing

Generated production packages and source rasters are not committed to the source repository. Infrastructure state, credentials, private requests and operator-specific values remain untracked.

The canonical FireViewer documentation defines the cross-project architecture, resource status, evidence rules and current maturity.

Code is licensed under AGPL-3.0-or-later. Original documentation is available under CC BY 4.0. Geographic sources and 3D assets retain their own licences and attribution requirements.

See SECURITY.md for responsible disclosure.

Contact

Research, mapping, provenance, rights or infrastructure: unicornwhodev@gmail.com.

About

Deterministic measured maps, observed temporal layers, portable spatial packages, and validation for FireViewer.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

178 Commits

Folders and files

NameName
Last commit message
Last commit date

FireViewer Spatial

FireViewer Spatial contains the deterministic tooling and contracts used to build, validate, package and consume measured geographic maps and observed temporal spatial layers.

This repository is not an emergency-response system, an official geographic authority or a certified fire-propagation predictor. A valid package proves only the checks recorded by its own manifests and receipts.

Role in FireViewer

The spatial subsystem is deliberately separate from evidence acquisition, visual detection, multimodal assessment and Part.4 fire-state reconstruction.

flowchart TD
sources["Measured geographic sources and immutable revisions"] --> maps["Part.1: deterministic tiled map production"]
maps --> packages["OpenUSD and web-view packages"]
packages --> checks["Structural, geometric, provenance and visual gates"]
checks --> consumer["Backend and 2D or 3D consumers"]
observations["Reviewed temporal geographic inputs"] --> timeline["Separate perimeter timeline package"]
timeline --> consumer
Loading

Incident observations and reconstructed fire states can later reference a measured map, but they do not rewrite the map itself.

Implemented areas

  • measured terrain grids and elevation handling;
  • orthophoto-derived ground textures under explicit source/provenance rules;
  • deterministic levels of detail;
  • explicit GPS asset placement and placement inventories;
  • portable OpenUSD scene composition and package manifests;
  • resumable tile-sharded Map Builder execution with deterministic checkpoint ownership;
  • dependent final assembly after shard completion;
  • tiled browser packages with progressive terrain/placement loading and shared prototypes;
  • asset-free production that preserves an explicitly empty prototype namespace across resume;
  • observed affected/active temporal layers without silently inventing missing observations;
  • consumer schemas that pin package, revision, build, contract and hash;
  • structural, geographic, provenance, dependency, size and human-review gates;
  • provider-specific deployment adapters kept outside the deterministic core contracts.

Map Builder boundary

The Map Builder receives an immutable request, a caller-provided scratch directory and an output directory. Cloud launch, object storage, credentials and publication are execution adapters rather than part of the geographic contract.

The terminal completion receipt is written last. A partial output without its required completion state must not be presented as a valid production map.

A successful unit test, container run or cloud replay does not qualify every map size, source condition, browser or publication route.

Measured maps on Hugging Face

Real retained measured-map packages are hosted in:

fireviewer/simple-measured-scenes-v1

Current retained production includes Die / Justin in Drôme, France.

Viewer compatibility rule

Existing published map directories, filenames and package paths can be consumed directly by the FireViewer viewer and other clients.

Do not rename, move, flatten or reorganise existing published map packages as part of repository/documentation cleanup.

A structural migration requires an explicit versioned migration contract and coordinated updates to every consumer.

reference/map-builder-reference-v1

The repository currently retains reference/map-builder-reference-v1.

This directory is a semantic validation baseline for the AWS Map Builder migration, containing request identity, hashes, metrics and validation receipts. It is not a production map and must not be listed as one.

It is intentionally left at its current path. Moving it merely to make the tree look cleaner would create unnecessary compatibility risk and is outside the documentation update.

Maps, wildfire state and simulation are different layers

FireViewer keeps these concepts separate:

  • measured map — geographic context produced from measured source products;
  • observation — dated evidence about a wildfire or its environment;
  • Part.4 3.3 reconstruction — deterministic probabilistic fire-state reconstruction from reviewed spatial observations;
  • simulation — generated scenario or reproduction material;
  • viewer derivative — runtime representation optimised for exploration.

A viewer GLB never replaces authoritative map/source contracts. A simulation never becomes measured geography or real-event evidence.

Daily fire-state reconstruction belongs to the backend's Part.4 3.3, not this map builder. It uses a private dated spatial seed and an uncalibrated fusion profile. Map and timeline tooling must not be described as autonomous perimeter inference, and a valid map package does not qualify a reconstructed fire state. See the reconstruction boundary.

Invariants

  • Geographic map, temporal wildfire state, simulation and visualisation remain separate.
  • Observed affected and active areas remain distinct.
  • Unknown state between observations is represented as unknown or explicitly reconstructed, not silently treated as observation.
  • Consumers reference immutable artifacts rather than rebuilding them implicitly.
  • Derived viewer files do not replace authoritative JSON/GeoJSON/OpenUSD provenance.
  • Deliverables keep source, licence, contract, revision and SHA-256 provenance where applicable.
  • Temporary source rasters are not silently redistributed in final packages.
  • Synthetic tests, cloud execution and human visual acceptance are separate gates.

Repository guide

Validation

A safe contract smoke that does not start map production is:

python -m pytest -q test_scene_consumer_contract.py

Subsystem tests require the dependencies named by their corresponding requirements files. Cloud acquisition, Blender import, OpenUSD/Kit validation, rendering and final visual review remain separate acceptance gates.

Data, security and licensing

Generated production packages and source rasters are not committed to the source repository. Infrastructure state, credentials, private requests and operator-specific values remain untracked.

The canonical FireViewer documentation defines the cross-project architecture, resource status, evidence rules and current maturity.

Code is licensed under AGPL-3.0-or-later. Original documentation is available under CC BY 4.0. Geographic sources and 3D assets retain their own licences and attribution requirements.

See SECURITY.md for responsible disclosure.

Contact

Research, mapping, provenance, rights or infrastructure: unicornwhodev@gmail.com.

About

Deterministic measured maps, observed temporal layers, portable spatial packages, and validation for FireViewer.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

178 Commits

Folders and files

NameName
Last commit message
Last commit date

FireViewer Spatial

FireViewer Spatial contains the deterministic tooling and contracts used to build, validate, package and consume measured geographic maps and observed temporal spatial layers.

This repository is not an emergency-response system, an official geographic authority or a certified fire-propagation predictor. A valid package proves only the checks recorded by its own manifests and receipts.

Role in FireViewer

The spatial subsystem is deliberately separate from evidence acquisition, visual detection, multimodal assessment and Part.4 fire-state reconstruction.

flowchart TD
sources["Measured geographic sources and immutable revisions"] --> maps["Part.1: deterministic tiled map production"]
maps --> packages["OpenUSD and web-view packages"]
packages --> checks["Structural, geometric, provenance and visual gates"]
checks --> consumer["Backend and 2D or 3D consumers"]
observations["Reviewed temporal geographic inputs"] --> timeline["Separate perimeter timeline package"]
timeline --> consumer
Loading

Incident observations and reconstructed fire states can later reference a measured map, but they do not rewrite the map itself.

Implemented areas

  • measured terrain grids and elevation handling;
  • orthophoto-derived ground textures under explicit source/provenance rules;
  • deterministic levels of detail;
  • explicit GPS asset placement and placement inventories;
  • portable OpenUSD scene composition and package manifests;
  • resumable tile-sharded Map Builder execution with deterministic checkpoint ownership;
  • dependent final assembly after shard completion;
  • tiled browser packages with progressive terrain/placement loading and shared prototypes;
  • asset-free production that preserves an explicitly empty prototype namespace across resume;
  • observed affected/active temporal layers without silently inventing missing observations;
  • consumer schemas that pin package, revision, build, contract and hash;
  • structural, geographic, provenance, dependency, size and human-review gates;
  • provider-specific deployment adapters kept outside the deterministic core contracts.

Map Builder boundary

The Map Builder receives an immutable request, a caller-provided scratch directory and an output directory. Cloud launch, object storage, credentials and publication are execution adapters rather than part of the geographic contract.

The terminal completion receipt is written last. A partial output without its required completion state must not be presented as a valid production map.

A successful unit test, container run or cloud replay does not qualify every map size, source condition, browser or publication route.

Measured maps on Hugging Face

Real retained measured-map packages are hosted in:

fireviewer/simple-measured-scenes-v1

Current retained production includes Die / Justin in Drôme, France.

Viewer compatibility rule

Existing published map directories, filenames and package paths can be consumed directly by the FireViewer viewer and other clients.

Do not rename, move, flatten or reorganise existing published map packages as part of repository/documentation cleanup.

A structural migration requires an explicit versioned migration contract and coordinated updates to every consumer.

reference/map-builder-reference-v1

The repository currently retains reference/map-builder-reference-v1.

This directory is a semantic validation baseline for the AWS Map Builder migration, containing request identity, hashes, metrics and validation receipts. It is not a production map and must not be listed as one.

It is intentionally left at its current path. Moving it merely to make the tree look cleaner would create unnecessary compatibility risk and is outside the documentation update.

Maps, wildfire state and simulation are different layers

FireViewer keeps these concepts separate:

  • measured map — geographic context produced from measured source products;
  • observation — dated evidence about a wildfire or its environment;
  • Part.4 3.3 reconstruction — deterministic probabilistic fire-state reconstruction from reviewed spatial observations;
  • simulation — generated scenario or reproduction material;
  • viewer derivative — runtime representation optimised for exploration.

A viewer GLB never replaces authoritative map/source contracts. A simulation never becomes measured geography or real-event evidence.

Daily fire-state reconstruction belongs to the backend's Part.4 3.3, not this map builder. It uses a private dated spatial seed and an uncalibrated fusion profile. Map and timeline tooling must not be described as autonomous perimeter inference, and a valid map package does not qualify a reconstructed fire state. See the reconstruction boundary.

Invariants

  • Geographic map, temporal wildfire state, simulation and visualisation remain separate.
  • Observed affected and active areas remain distinct.
  • Unknown state between observations is represented as unknown or explicitly reconstructed, not silently treated as observation.
  • Consumers reference immutable artifacts rather than rebuilding them implicitly.
  • Derived viewer files do not replace authoritative JSON/GeoJSON/OpenUSD provenance.
  • Deliverables keep source, licence, contract, revision and SHA-256 provenance where applicable.
  • Temporary source rasters are not silently redistributed in final packages.
  • Synthetic tests, cloud execution and human visual acceptance are separate gates.

Repository guide

Validation

A safe contract smoke that does not start map production is:

python -m pytest -q test_scene_consumer_contract.py

Subsystem tests require the dependencies named by their corresponding requirements files. Cloud acquisition, Blender import, OpenUSD/Kit validation, rendering and final visual review remain separate acceptance gates.

Data, security and licensing

Generated production packages and source rasters are not committed to the source repository. Infrastructure state, credentials, private requests and operator-specific values remain untracked.

The canonical FireViewer documentation defines the cross-project architecture, resource status, evidence rules and current maturity.

Code is licensed under AGPL-3.0-or-later. Original documentation is available under CC BY 4.0. Geographic sources and 3D assets retain their own licences and attribution requirements.

See SECURITY.md for responsible disclosure.

Contact

Research, mapping, provenance, rights or infrastructure: unicornwhodev@gmail.com.

About

Deterministic measured maps, observed temporal layers, portable spatial packages, and validation for FireViewer.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

178 Commits

Folders and files

NameName
Last commit message
Last commit date

FireViewer Spatial

FireViewer Spatial contains the deterministic tooling and contracts used to build, validate, package and consume measured geographic maps and observed temporal spatial layers.

This repository is not an emergency-response system, an official geographic authority or a certified fire-propagation predictor. A valid package proves only the checks recorded by its own manifests and receipts.

Role in FireViewer

The spatial subsystem is deliberately separate from evidence acquisition, visual detection, multimodal assessment and Part.4 fire-state reconstruction.

flowchart TD
sources["Measured geographic sources and immutable revisions"] --> maps["Part.1: deterministic tiled map production"]
maps --> packages["OpenUSD and web-view packages"]
packages --> checks["Structural, geometric, provenance and visual gates"]
checks --> consumer["Backend and 2D or 3D consumers"]
observations["Reviewed temporal geographic inputs"] --> timeline["Separate perimeter timeline package"]
timeline --> consumer
Loading

Incident observations and reconstructed fire states can later reference a measured map, but they do not rewrite the map itself.

Implemented areas

  • measured terrain grids and elevation handling;
  • orthophoto-derived ground textures under explicit source/provenance rules;
  • deterministic levels of detail;
  • explicit GPS asset placement and placement inventories;
  • portable OpenUSD scene composition and package manifests;
  • resumable tile-sharded Map Builder execution with deterministic checkpoint ownership;
  • dependent final assembly after shard completion;
  • tiled browser packages with progressive terrain/placement loading and shared prototypes;
  • asset-free production that preserves an explicitly empty prototype namespace across resume;
  • observed affected/active temporal layers without silently inventing missing observations;
  • consumer schemas that pin package, revision, build, contract and hash;
  • structural, geographic, provenance, dependency, size and human-review gates;
  • provider-specific deployment adapters kept outside the deterministic core contracts.

Map Builder boundary

The Map Builder receives an immutable request, a caller-provided scratch directory and an output directory. Cloud launch, object storage, credentials and publication are execution adapters rather than part of the geographic contract.

The terminal completion receipt is written last. A partial output without its required completion state must not be presented as a valid production map.

A successful unit test, container run or cloud replay does not qualify every map size, source condition, browser or publication route.

Measured maps on Hugging Face

Real retained measured-map packages are hosted in:

fireviewer/simple-measured-scenes-v1

Current retained production includes Die / Justin in Drôme, France.

Viewer compatibility rule

Existing published map directories, filenames and package paths can be consumed directly by the FireViewer viewer and other clients.

Do not rename, move, flatten or reorganise existing published map packages as part of repository/documentation cleanup.

A structural migration requires an explicit versioned migration contract and coordinated updates to every consumer.

reference/map-builder-reference-v1

The repository currently retains reference/map-builder-reference-v1.

This directory is a semantic validation baseline for the AWS Map Builder migration, containing request identity, hashes, metrics and validation receipts. It is not a production map and must not be listed as one.

It is intentionally left at its current path. Moving it merely to make the tree look cleaner would create unnecessary compatibility risk and is outside the documentation update.

Maps, wildfire state and simulation are different layers

FireViewer keeps these concepts separate:

  • measured map — geographic context produced from measured source products;
  • observation — dated evidence about a wildfire or its environment;
  • Part.4 3.3 reconstruction — deterministic probabilistic fire-state reconstruction from reviewed spatial observations;
  • simulation — generated scenario or reproduction material;
  • viewer derivative — runtime representation optimised for exploration.

A viewer GLB never replaces authoritative map/source contracts. A simulation never becomes measured geography or real-event evidence.

Daily fire-state reconstruction belongs to the backend's Part.4 3.3, not this map builder. It uses a private dated spatial seed and an uncalibrated fusion profile. Map and timeline tooling must not be described as autonomous perimeter inference, and a valid map package does not qualify a reconstructed fire state. See the reconstruction boundary.

Invariants

  • Geographic map, temporal wildfire state, simulation and visualisation remain separate.
  • Observed affected and active areas remain distinct.
  • Unknown state between observations is represented as unknown or explicitly reconstructed, not silently treated as observation.
  • Consumers reference immutable artifacts rather than rebuilding them implicitly.
  • Derived viewer files do not replace authoritative JSON/GeoJSON/OpenUSD provenance.
  • Deliverables keep source, licence, contract, revision and SHA-256 provenance where applicable.
  • Temporary source rasters are not silently redistributed in final packages.
  • Synthetic tests, cloud execution and human visual acceptance are separate gates.

Repository guide

Validation

A safe contract smoke that does not start map production is:

python -m pytest -q test_scene_consumer_contract.py

Subsystem tests require the dependencies named by their corresponding requirements files. Cloud acquisition, Blender import, OpenUSD/Kit validation, rendering and final visual review remain separate acceptance gates.

Data, security and licensing

Generated production packages and source rasters are not committed to the source repository. Infrastructure state, credentials, private requests and operator-specific values remain untracked.

The canonical FireViewer documentation defines the cross-project architecture, resource status, evidence rules and current maturity.

Code is licensed under AGPL-3.0-or-later. Original documentation is available under CC BY 4.0. Geographic sources and 3D assets retain their own licences and attribution requirements.

See SECURITY.md for responsible disclosure.

Contact

Research, mapping, provenance, rights or infrastructure: unicornwhodev@gmail.com.

About

Deterministic measured maps, observed temporal layers, portable spatial packages, and validation for FireViewer.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

178 Commits

Folders and files

NameName
Last commit message
Last commit date

FireViewer Spatial

FireViewer Spatial contains the deterministic tooling and contracts used to build, validate, package and consume measured geographic maps and observed temporal spatial layers.

This repository is not an emergency-response system, an official geographic authority or a certified fire-propagation predictor. A valid package proves only the checks recorded by its own manifests and receipts.

Role in FireViewer

The spatial subsystem is deliberately separate from evidence acquisition, visual detection, multimodal assessment and Part.4 fire-state reconstruction.

flowchart TD
sources["Measured geographic sources and immutable revisions"] --> maps["Part.1: deterministic tiled map production"]
maps --> packages["OpenUSD and web-view packages"]
packages --> checks["Structural, geometric, provenance and visual gates"]
checks --> consumer["Backend and 2D or 3D consumers"]
observations["Reviewed temporal geographic inputs"] --> timeline["Separate perimeter timeline package"]
timeline --> consumer
Loading

Incident observations and reconstructed fire states can later reference a measured map, but they do not rewrite the map itself.

Implemented areas

  • measured terrain grids and elevation handling;
  • orthophoto-derived ground textures under explicit source/provenance rules;
  • deterministic levels of detail;
  • explicit GPS asset placement and placement inventories;
  • portable OpenUSD scene composition and package manifests;
  • resumable tile-sharded Map Builder execution with deterministic checkpoint ownership;
  • dependent final assembly after shard completion;
  • tiled browser packages with progressive terrain/placement loading and shared prototypes;
  • asset-free production that preserves an explicitly empty prototype namespace across resume;
  • observed affected/active temporal layers without silently inventing missing observations;
  • consumer schemas that pin package, revision, build, contract and hash;
  • structural, geographic, provenance, dependency, size and human-review gates;
  • provider-specific deployment adapters kept outside the deterministic core contracts.

Map Builder boundary

The Map Builder receives an immutable request, a caller-provided scratch directory and an output directory. Cloud launch, object storage, credentials and publication are execution adapters rather than part of the geographic contract.

The terminal completion receipt is written last. A partial output without its required completion state must not be presented as a valid production map.

A successful unit test, container run or cloud replay does not qualify every map size, source condition, browser or publication route.

Measured maps on Hugging Face

Real retained measured-map packages are hosted in:

fireviewer/simple-measured-scenes-v1

Current retained production includes Die / Justin in Drôme, France.

Viewer compatibility rule

Existing published map directories, filenames and package paths can be consumed directly by the FireViewer viewer and other clients.

Do not rename, move, flatten or reorganise existing published map packages as part of repository/documentation cleanup.

A structural migration requires an explicit versioned migration contract and coordinated updates to every consumer.

reference/map-builder-reference-v1

The repository currently retains reference/map-builder-reference-v1.

This directory is a semantic validation baseline for the AWS Map Builder migration, containing request identity, hashes, metrics and validation receipts. It is not a production map and must not be listed as one.

It is intentionally left at its current path. Moving it merely to make the tree look cleaner would create unnecessary compatibility risk and is outside the documentation update.

Maps, wildfire state and simulation are different layers

FireViewer keeps these concepts separate:

  • measured map — geographic context produced from measured source products;
  • observation — dated evidence about a wildfire or its environment;
  • Part.4 3.3 reconstruction — deterministic probabilistic fire-state reconstruction from reviewed spatial observations;
  • simulation — generated scenario or reproduction material;
  • viewer derivative — runtime representation optimised for exploration.

A viewer GLB never replaces authoritative map/source contracts. A simulation never becomes measured geography or real-event evidence.

Daily fire-state reconstruction belongs to the backend's Part.4 3.3, not this map builder. It uses a private dated spatial seed and an uncalibrated fusion profile. Map and timeline tooling must not be described as autonomous perimeter inference, and a valid map package does not qualify a reconstructed fire state. See the reconstruction boundary.

Invariants

  • Geographic map, temporal wildfire state, simulation and visualisation remain separate.
  • Observed affected and active areas remain distinct.
  • Unknown state between observations is represented as unknown or explicitly reconstructed, not silently treated as observation.
  • Consumers reference immutable artifacts rather than rebuilding them implicitly.
  • Derived viewer files do not replace authoritative JSON/GeoJSON/OpenUSD provenance.
  • Deliverables keep source, licence, contract, revision and SHA-256 provenance where applicable.
  • Temporary source rasters are not silently redistributed in final packages.
  • Synthetic tests, cloud execution and human visual acceptance are separate gates.

Repository guide

Validation

A safe contract smoke that does not start map production is:

python -m pytest -q test_scene_consumer_contract.py

Subsystem tests require the dependencies named by their corresponding requirements files. Cloud acquisition, Blender import, OpenUSD/Kit validation, rendering and final visual review remain separate acceptance gates.

Data, security and licensing

Generated production packages and source rasters are not committed to the source repository. Infrastructure state, credentials, private requests and operator-specific values remain untracked.

The canonical FireViewer documentation defines the cross-project architecture, resource status, evidence rules and current maturity.

Code is licensed under AGPL-3.0-or-later. Original documentation is available under CC BY 4.0. Geographic sources and 3D assets retain their own licences and attribution requirements.

See SECURITY.md for responsible disclosure.

Contact

Research, mapping, provenance, rights or infrastructure: unicornwhodev@gmail.com.

About

Deterministic measured maps, observed temporal layers, portable spatial packages, and validation for FireViewer.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

178 Commits

Folders and files

NameName
Last commit message
Last commit date

FireViewer Spatial

FireViewer Spatial contains the deterministic tooling and contracts used to build, validate, package and consume measured geographic maps and observed temporal spatial layers.

This repository is not an emergency-response system, an official geographic authority or a certified fire-propagation predictor. A valid package proves only the checks recorded by its own manifests and receipts.

Role in FireViewer

The spatial subsystem is deliberately separate from evidence acquisition, visual detection, multimodal assessment and Part.4 fire-state reconstruction.

flowchart TD
sources["Measured geographic sources and immutable revisions"] --> maps["Part.1: deterministic tiled map production"]
maps --> packages["OpenUSD and web-view packages"]
packages --> checks["Structural, geometric, provenance and visual gates"]
checks --> consumer["Backend and 2D or 3D consumers"]
observations["Reviewed temporal geographic inputs"] --> timeline["Separate perimeter timeline package"]
timeline --> consumer
Loading

Incident observations and reconstructed fire states can later reference a measured map, but they do not rewrite the map itself.

Implemented areas

  • measured terrain grids and elevation handling;
  • orthophoto-derived ground textures under explicit source/provenance rules;
  • deterministic levels of detail;
  • explicit GPS asset placement and placement inventories;
  • portable OpenUSD scene composition and package manifests;
  • resumable tile-sharded Map Builder execution with deterministic checkpoint ownership;
  • dependent final assembly after shard completion;
  • tiled browser packages with progressive terrain/placement loading and shared prototypes;
  • asset-free production that preserves an explicitly empty prototype namespace across resume;
  • observed affected/active temporal layers without silently inventing missing observations;
  • consumer schemas that pin package, revision, build, contract and hash;
  • structural, geographic, provenance, dependency, size and human-review gates;
  • provider-specific deployment adapters kept outside the deterministic core contracts.

Map Builder boundary

The Map Builder receives an immutable request, a caller-provided scratch directory and an output directory. Cloud launch, object storage, credentials and publication are execution adapters rather than part of the geographic contract.

The terminal completion receipt is written last. A partial output without its required completion state must not be presented as a valid production map.

A successful unit test, container run or cloud replay does not qualify every map size, source condition, browser or publication route.

Measured maps on Hugging Face

Real retained measured-map packages are hosted in:

fireviewer/simple-measured-scenes-v1

Current retained production includes Die / Justin in Drôme, France.

Viewer compatibility rule

Existing published map directories, filenames and package paths can be consumed directly by the FireViewer viewer and other clients.

Do not rename, move, flatten or reorganise existing published map packages as part of repository/documentation cleanup.

A structural migration requires an explicit versioned migration contract and coordinated updates to every consumer.

reference/map-builder-reference-v1

The repository currently retains reference/map-builder-reference-v1.

This directory is a semantic validation baseline for the AWS Map Builder migration, containing request identity, hashes, metrics and validation receipts. It is not a production map and must not be listed as one.

It is intentionally left at its current path. Moving it merely to make the tree look cleaner would create unnecessary compatibility risk and is outside the documentation update.

Maps, wildfire state and simulation are different layers

FireViewer keeps these concepts separate:

  • measured map — geographic context produced from measured source products;
  • observation — dated evidence about a wildfire or its environment;
  • Part.4 3.3 reconstruction — deterministic probabilistic fire-state reconstruction from reviewed spatial observations;
  • simulation — generated scenario or reproduction material;
  • viewer derivative — runtime representation optimised for exploration.

A viewer GLB never replaces authoritative map/source contracts. A simulation never becomes measured geography or real-event evidence.

Daily fire-state reconstruction belongs to the backend's Part.4 3.3, not this map builder. It uses a private dated spatial seed and an uncalibrated fusion profile. Map and timeline tooling must not be described as autonomous perimeter inference, and a valid map package does not qualify a reconstructed fire state. See the reconstruction boundary.

Invariants

  • Geographic map, temporal wildfire state, simulation and visualisation remain separate.
  • Observed affected and active areas remain distinct.
  • Unknown state between observations is represented as unknown or explicitly reconstructed, not silently treated as observation.
  • Consumers reference immutable artifacts rather than rebuilding them implicitly.
  • Derived viewer files do not replace authoritative JSON/GeoJSON/OpenUSD provenance.
  • Deliverables keep source, licence, contract, revision and SHA-256 provenance where applicable.
  • Temporary source rasters are not silently redistributed in final packages.
  • Synthetic tests, cloud execution and human visual acceptance are separate gates.

Repository guide

Validation

A safe contract smoke that does not start map production is:

python -m pytest -q test_scene_consumer_contract.py

Subsystem tests require the dependencies named by their corresponding requirements files. Cloud acquisition, Blender import, OpenUSD/Kit validation, rendering and final visual review remain separate acceptance gates.

Data, security and licensing

Generated production packages and source rasters are not committed to the source repository. Infrastructure state, credentials, private requests and operator-specific values remain untracked.

The canonical FireViewer documentation defines the cross-project architecture, resource status, evidence rules and current maturity.

Code is licensed under AGPL-3.0-or-later. Original documentation is available under CC BY 4.0. Geographic sources and 3D assets retain their own licences and attribution requirements.

See SECURITY.md for responsible disclosure.

Contact

Research, mapping, provenance, rights or infrastructure: unicornwhodev@gmail.com.

About

Deterministic measured maps, observed temporal layers, portable spatial packages, and validation for FireViewer.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages