space-data-module-sdk 0.8.14 → 0.8.16
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/bin/space-data-module.js +91 -0
- package/docs/_shell/consumer-assets.html +5 -0
- package/docs/browser-wasmedge-isomorphic.html +261 -0
- package/docs/byo-wasm-quickstart.html +226 -0
- package/docs/byo-wasm-quickstart.md +204 -0
- package/docs/conformance.html +156 -0
- package/docs/conformance.md +92 -0
- package/docs/emception-shared-memory-verdict.md +209 -0
- package/docs/events-abi.html +313 -0
- package/docs/events-abi.md +530 -0
- package/docs/families/analytics.html +178 -0
- package/docs/families/analytics.md +104 -0
- package/docs/families/attitude.html +157 -0
- package/docs/families/attitude.md +36 -0
- package/docs/families/behavior.html +157 -0
- package/docs/families/behavior.md +36 -0
- package/docs/families/breakup.html +157 -0
- package/docs/families/breakup.md +36 -0
- package/docs/families/conjunction.html +186 -0
- package/docs/families/conjunction.md +121 -0
- package/docs/families/data-source.html +318 -0
- package/docs/families/effects.html +157 -0
- package/docs/families/effects.md +36 -0
- package/docs/families/environment.html +170 -0
- package/docs/families/environment.md +73 -0
- package/docs/families/estimation.html +190 -0
- package/docs/families/estimation.md +128 -0
- package/docs/families/gnc.html +157 -0
- package/docs/families/gnc.md +36 -0
- package/docs/families/maneuver.html +209 -0
- package/docs/families/maneuver.md +206 -0
- package/docs/families/obstruction.html +191 -0
- package/docs/families/obstruction.md +96 -0
- package/docs/families/propagator.html +333 -0
- package/docs/families/propulsion.html +157 -0
- package/docs/families/propulsion.md +36 -0
- package/docs/families/reentry.html +157 -0
- package/docs/families/reentry.md +36 -0
- package/docs/families/rf.html +193 -0
- package/docs/families/rf.md +136 -0
- package/docs/families/scheduler.html +157 -0
- package/docs/families/scheduler.md +36 -0
- package/docs/families/sensor.html +157 -0
- package/docs/families/sensor.md +36 -0
- package/docs/families/signature.html +157 -0
- package/docs/families/signature.md +36 -0
- package/docs/flatsql-host-contract.html +176 -0
- package/docs/flatsql-streaming-standard.html +375 -0
- package/docs/gpu-module-abi.html +233 -0
- package/docs/harness-family-matrix.md +135 -0
- package/docs/index.html +216 -85
- package/docs/isomorphic-pthreads.html +228 -0
- package/docs/isomorphic-pthreads.md +84 -0
- package/docs/isomorphic-sdn-runtime-plan.html +274 -0
- package/docs/language-runtime-matrix.html +182 -0
- package/docs/llms.txt +86 -0
- package/docs/module-bundle-runtime-plan.html +146 -0
- package/docs/module-publication-standard.html +503 -0
- package/docs/node-red-default-node-parity.html +201 -0
- package/docs/propagator-abi.md +73 -21
- package/docs/protect-and-sign.html +181 -0
- package/docs/protect-and-sign.md +120 -0
- package/docs/protocol-installation.html +296 -0
- package/docs/publication-submission.html +158 -0
- package/docs/publication-submission.md +78 -0
- package/docs/secrets-capability.html +206 -0
- package/docs/styles.css +860 -167
- package/docs/testing-harness.html +408 -0
- package/docs/tri-runtime-parity-gate.html +182 -0
- package/docs/tri-runtime-parity.html +203 -0
- package/include/orbpro/orbpro_event_runner.h +951 -0
- package/include/orbpro/orbpro_events_abi.h +565 -0
- package/include/orbpro/orbpro_propagator_abi.h +17 -0
- package/package.json +15 -5
- package/schemas/orbpro/Events.fbs +501 -0
- package/schemas/orbpro/Propagator.fbs +72 -9
- package/schemas/orbpro/reference-frame-crosswalk.json +108 -0
- package/schemas/orbpro/reference-frame.lock.json +98 -0
- package/src/browser.js +13 -0
- package/src/conformance/abiDriver.js +225 -0
- package/src/conformance/index.js +151 -0
- package/src/conformance/propagatorSuite.js +526 -0
- package/src/conformance/selfTest.js +275 -0
- package/src/conformance/selfTestCorpus.js +68 -0
- package/src/conformance/twoBodyReference.js +132 -0
- package/src/generated/orbpro/events-abi.js +206 -0
- package/src/generated/orbpro/events-abi.ts +319 -0
- package/src/generated/orbpro/propagator/reference-frame.js +17 -0
- package/src/generated/orbpro/propagator/reference-frame.ts +91 -1
- package/src/generated/orbpro/propagator-abi.js +17 -0
- package/src/generated/orbpro/propagator-abi.ts +17 -0
- package/src/generated/spacedatastandards/plg/CCT.d.ts +94 -0
- package/src/generated/spacedatastandards/plg/CCT.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/CCT.js +208 -0
- package/src/generated/spacedatastandards/plg/CCT.ts +281 -0
- package/src/generated/spacedatastandards/plg/CCTCategory.d.ts +98 -0
- package/src/generated/spacedatastandards/plg/CCTCategory.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/CCTCategory.js +177 -0
- package/src/generated/spacedatastandards/plg/CCTCategory.ts +269 -0
- package/src/generated/spacedatastandards/plg/CCTCategoryRollup.d.ts +54 -0
- package/src/generated/spacedatastandards/plg/CCTCategoryRollup.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/CCTCategoryRollup.js +106 -0
- package/src/generated/spacedatastandards/plg/CCTCategoryRollup.ts +144 -0
- package/src/generated/spacedatastandards/plg/PLG.d.ts +46 -2
- package/src/generated/spacedatastandards/plg/PLG.d.ts.map +1 -1
- package/src/generated/spacedatastandards/plg/PLG.js +78 -5
- package/src/generated/spacedatastandards/plg/PLG.ts +90 -5
- package/src/generated/spacedatastandards/plg/capabilityClass.d.ts +181 -0
- package/src/generated/spacedatastandards/plg/capabilityClass.d.ts.map +1 -0
- package/src/generated/spacedatastandards/plg/capabilityClass.js +183 -0
- package/src/generated/spacedatastandards/plg/capabilityClass.ts +208 -0
- package/src/generated/spacedatastandards/plg/main.d.ts +4 -0
- package/src/generated/spacedatastandards/plg/main.d.ts.map +1 -1
- package/src/generated/spacedatastandards/plg/main.js +4 -0
- package/src/generated/spacedatastandards/plg/main.ts +4 -0
- package/src/generated/spacedatastandards/plg/pluginCategory.d.ts +40 -2
- package/src/generated/spacedatastandards/plg/pluginCategory.d.ts.map +1 -1
- package/src/generated/spacedatastandards/plg/pluginCategory.js +40 -2
- package/src/generated/spacedatastandards/plg/pluginCategory.ts +40 -2
- package/src/host/browserModuleHarness.js +8 -0
- package/src/host/wasiThreadHost.js +189 -14
- package/src/index.d.ts +18 -1
- package/src/testing/isomorphicHarness.js +233 -0
- package/src/transport/index.js +16 -0
- package/src/transport/records.js +1015 -3
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<meta name="description" content="Status: DESIGNED, and thinner than any other Designed family. One paragraph" />
|
|
7
|
+
<title>Obstruction — Space Data Module SDK</title>
|
|
8
|
+
<link rel="stylesheet" href="../styles.css" />
|
|
9
|
+
<!-- SDN_CONSUMER_ASSETS_START -->
|
|
10
|
+
<link rel="stylesheet" href="https://static.spacedatanetwork.org/assets/hd-wallet-ui/2.0.28/sdn-wallet-public-client.c3f68d1cfd88478f10d836a5e829d1dfc6a10157972cf0f7d4d319d0636f2cc4.css" integrity="sha384-fICuhN4I9xqOK1F5vGGzl26opuO+xQIvTZXMSV76lWTBiQ6AfzztMGLLDw8yRT8i" crossorigin="anonymous">
|
|
11
|
+
<script defer src="https://static.spacedatanetwork.org/assets/hd-wallet-ui/2.0.28/sdn-wallet-public-client.f611e7e151a3b5c38384272f8894a4c6634f0a29bf925b0e02e0e27f8db0bfff.js" integrity="sha384-R+QqsKoWJIS7iWrtPmgJ49DVnb1hSGjZokupbLInJd1PLp8RwQhtF/hnaerc33ci" crossorigin="anonymous" data-sdn-wallet-public-client="v1"></script>
|
|
12
|
+
<script defer src="https://static.spacedatanetwork.org/assets/sdn-stack-nav/1.0.0/sdn-stack-nav.52fde607eee38ffa116188201f50258ed50bd18c9f06c1af9678f763147a8fe5.js" integrity="sha384-dgeojhJ8vTszHXIbv7O7nZcEzqD10oUYYJjBmPrV7+kLQEUlXLQD4ek5Q7HOFiO5" crossorigin="anonymous" data-nav-style-url="https://static.spacedatanetwork.org/assets/sdn-stack-nav/1.0.0/sdn-stack-nav.36a36359ce18322185e9ff179f88175bab67d5ad84a14d9c08a54f2ff27267e7.css" data-nav-style-integrity="sha384-c4M8Fg+kYaeOYYtJVr7jJsde24IhSWkWaRyAOHEZU9jozhRck089aw+mnHwxymds" data-wallet-client-url="https://static.spacedatanetwork.org/assets/hd-wallet-ui/2.0.28/sdn-wallet-public-client.f611e7e151a3b5c38384272f8894a4c6634f0a29bf925b0e02e0e27f8db0bfff.js" data-wallet-client-integrity="sha384-R+QqsKoWJIS7iWrtPmgJ49DVnb1hSGjZokupbLInJd1PLp8RwQhtF/hnaerc33ci" data-wallet-style-url="https://static.spacedatanetwork.org/assets/hd-wallet-ui/2.0.28/sdn-wallet-public-client.c3f68d1cfd88478f10d836a5e829d1dfc6a10157972cf0f7d4d319d0636f2cc4.css" data-wallet-style-integrity="sha384-fICuhN4I9xqOK1F5vGGzl26opuO+xQIvTZXMSV76lWTBiQ6AfzztMGLLDw8yRT8i" data-wallet-client-id="sdn-module-sdk-pages-v1" data-wallet-callback-uri="https://digitalarsenal.github.io/space-data-module-sdk/wallet-callback.html" data-wallet-registry-sha256="e1ce6fe903c9700484a8a87d96581c8cad97063dabf63030b4518a31a3bdaa93"></script>
|
|
13
|
+
<!-- SDN_CONSUMER_ASSETS_END -->
|
|
14
|
+
</head>
|
|
15
|
+
<body>
|
|
16
|
+
<a class="skip-link" href="#main">Skip to content</a>
|
|
17
|
+
<sdn-stack-nav active="module-sdk"></sdn-stack-nav>
|
|
18
|
+
<header class="site-header">
|
|
19
|
+
<a class="site-brand" href="../">Space Data Module SDK</a>
|
|
20
|
+
<nav class="header-links" aria-label="Site">
|
|
21
|
+
<a href="../byo-wasm-quickstart.html">Quickstart</a>
|
|
22
|
+
<a href="../conformance.html">Conformance</a>
|
|
23
|
+
<a href="https://github.com/DigitalArsenal/space-data-module-sdk">GitHub</a>
|
|
24
|
+
<a class="stack-button" href="#stack">Stack</a>
|
|
25
|
+
</nav>
|
|
26
|
+
</header>
|
|
27
|
+
<div class="shell">
|
|
28
|
+
<nav class="sidebar" id="sidebar" aria-label="Documentation">
|
|
29
|
+
<h2>Start here</h2><ul>
|
|
30
|
+
<li><a href="../index.html"><span>Harness family matrix</span></a></li>
|
|
31
|
+
<li><a href="../byo-wasm-quickstart.html"><span>BYO-wasm quickstart</span></a></li>
|
|
32
|
+
<li><a href="../conformance.html"><span>Conformance kit</span></a></li>
|
|
33
|
+
<li><a href="../protect-and-sign.html"><span>Protect and sign</span></a></li>
|
|
34
|
+
<li><a href="../publication-submission.html"><span>Publication and listing</span></a></li>
|
|
35
|
+
</ul>
|
|
36
|
+
<h2>Dynamics</h2><ul>
|
|
37
|
+
<li><a href="./propagator.html"><span>Propagator</span><span class="tag tag-shipped">shipped</span></a></li>
|
|
38
|
+
<li><a href="./maneuver.html"><span>Maneuver</span><span class="tag tag-experimental">experimental</span></a></li>
|
|
39
|
+
<li><a href="./propulsion.html"><span>Propulsion</span><span class="tag tag-planned">planned</span></a></li>
|
|
40
|
+
<li><a href="./attitude.html"><span>Attitude</span><span class="tag tag-planned">planned</span></a></li>
|
|
41
|
+
<li><a href="./gnc.html"><span>GNC</span><span class="tag tag-planned">planned</span></a></li>
|
|
42
|
+
</ul>
|
|
43
|
+
<h2>Environment and interaction</h2><ul>
|
|
44
|
+
<li><a href="./rf.html"><span>RF</span><span class="tag tag-designed">designed</span></a></li>
|
|
45
|
+
<li><a href="./sensor.html"><span>Sensor</span><span class="tag tag-planned">planned</span></a></li>
|
|
46
|
+
<li><a href="./signature.html"><span>Signature</span><span class="tag tag-planned">planned</span></a></li>
|
|
47
|
+
<li><a href="./environment.html"><span>Environment</span><span class="tag tag-planned">planned</span></a></li>
|
|
48
|
+
<li><a href="./obstruction.html" aria-current="page"><span>Obstruction</span><span class="tag tag-designed">designed</span></a></li>
|
|
49
|
+
</ul>
|
|
50
|
+
<h2>Event physics</h2><ul>
|
|
51
|
+
<li><a href="./breakup.html"><span>Breakup</span><span class="tag tag-planned">planned</span></a></li>
|
|
52
|
+
<li><a href="./reentry.html"><span>Reentry</span><span class="tag tag-planned">planned</span></a></li>
|
|
53
|
+
<li><a href="./conjunction.html"><span>Conjunction</span><span class="tag tag-designed">designed</span></a></li>
|
|
54
|
+
<li><a href="./effects.html"><span>Effects</span><span class="tag tag-planned">planned</span></a></li>
|
|
55
|
+
</ul>
|
|
56
|
+
<h2>Estimation, data and logic</h2><ul>
|
|
57
|
+
<li><a href="./estimation.html"><span>Estimation</span><span class="tag tag-experimental">experimental</span></a></li>
|
|
58
|
+
<li><a href="./data-source.html"><span>Data source</span><span class="tag tag-shipped">shipped</span></a></li>
|
|
59
|
+
<li><a href="./analytics.html"><span>Analytics</span><span class="tag tag-experimental">experimental</span></a></li>
|
|
60
|
+
<li><a href="./scheduler.html"><span>Scheduler</span><span class="tag tag-planned">planned</span></a></li>
|
|
61
|
+
<li><a href="./behavior.html"><span>Behavior</span><span class="tag tag-planned">planned</span></a></li>
|
|
62
|
+
</ul>
|
|
63
|
+
<h2>Runtime contract</h2><ul>
|
|
64
|
+
<li><a href="../events-abi.html"><span>Event locator ABI</span></a></li>
|
|
65
|
+
<li><a href="../module-publication-standard.html"><span>Module publication standard</span></a></li>
|
|
66
|
+
<li><a href="../browser-wasmedge-isomorphic.html"><span>Browser / WasmEdge isomorphism</span></a></li>
|
|
67
|
+
<li><a href="../isomorphic-pthreads.html"><span>Isomorphic pthreads</span></a></li>
|
|
68
|
+
<li><a href="../tri-runtime-parity.html"><span>Tri-runtime parity</span></a></li>
|
|
69
|
+
<li><a href="../tri-runtime-parity-gate.html"><span>Tri-runtime parity gate</span></a></li>
|
|
70
|
+
<li><a href="../testing-harness.html"><span>Testing harness</span></a></li>
|
|
71
|
+
<li><a href="../language-runtime-matrix.html"><span>Language and runtime matrix</span></a></li>
|
|
72
|
+
</ul>
|
|
73
|
+
<h2>Host surfaces</h2><ul>
|
|
74
|
+
<li><a href="../flatsql-host-contract.html"><span>FlatSQL host contract</span></a></li>
|
|
75
|
+
<li><a href="../flatsql-streaming-standard.html"><span>FlatSQL streaming standard</span></a></li>
|
|
76
|
+
<li><a href="../secrets-capability.html"><span>Credential lanes</span></a></li>
|
|
77
|
+
<li><a href="../protocol-installation.html"><span>Protocol installation</span></a></li>
|
|
78
|
+
<li><a href="../gpu-module-abi.html"><span>GPU module ABI</span></a></li>
|
|
79
|
+
<li><a href="../module-bundle-runtime-plan.html"><span>Module bundle runtime</span></a></li>
|
|
80
|
+
<li><a href="../isomorphic-sdn-runtime-plan.html"><span>Isomorphic SDN runtime</span></a></li>
|
|
81
|
+
<li><a href="../node-red-default-node-parity.html"><span>Node-RED node parity</span></a></li>
|
|
82
|
+
</ul>
|
|
83
|
+
</nav>
|
|
84
|
+
<main class="doc" id="main">
|
|
85
|
+
<p class="breadcrumb"><a href="../index.html">Harness families</a> / Environment and interaction</p>
|
|
86
|
+
<h1>Obstruction</h1>
|
|
87
|
+
<p class="doc-meta"><span class="pill pill-designed">designed</span><span>Designed, not ratified. The ABI has been drafted against a real consumer but no generated header, conformance kit, or reference module has landed.</span></p>
|
|
88
|
+
<p><strong>Status: DESIGNED, and thinner than any other Designed family.</strong> One paragraph of intent exists, in one open task, blocked behind two unfinished prerequisites. There is no schema, no header, no code, and no package. This page exists so the scope is stated honestly rather than implied by silence.</p>
|
|
89
|
+
<h2 id="doctrine"><a class="anchor" href="#doctrine" aria-hidden="true">#</a>Doctrine</h2>
|
|
90
|
+
<p>An obstruction module answers whether a path between two points is blocked, and by what, given arbitrary three-dimensional geometry with physical material properties. It is a service to other families rather than a family a consumer invokes directly: RF asks it whether a link is occluded and how much loss the obstruction imposes, sensors ask it whether a target is visible, and event physics asks it what a fragment would strike.</p>
|
|
91
|
+
<p>It is currently designed as an <em>extension</em> of the RF bulk link-matrix ABI rather than as a standalone contract, so its shape is downstream of that family's schema.</p>
|
|
92
|
+
<h2 id="capability"><a class="anchor" href="#capability" aria-hidden="true">#</a>Capability</h2>
|
|
93
|
+
<p>Take an obstacle set and a set of paths; return occlusion and the loss or visibility consequence of that occlusion. Compute only — no scene writes, no data fetching.</p>
|
|
94
|
+
<h2 id="import-and-export-set"><a class="anchor" href="#import-and-export-set" aria-hidden="true">#</a>Import and export set</h2>
|
|
95
|
+
<p><strong>Not specified.</strong> Nothing exists.</p>
|
|
96
|
+
<h2 id="wire-layout"><a class="anchor" href="#wire-layout" aria-hidden="true">#</a>Wire layout</h2>
|
|
97
|
+
<p><strong>Drafted in prose only.</strong> The intended obstacle set is:</p>
|
|
98
|
+
<ul>
|
|
99
|
+
<li>Triangle meshes, and analytic shapes — sphere, ellipsoid, box, extruded polygon.</li>
|
|
100
|
+
<li>Each obstacle references a material record carrying relative permittivity, conductivity, reflection, absorption and transmission loss as a function of frequency, a roughness or scattering class, and a validity range, following the ITU-R P.2040 material classes.</li>
|
|
101
|
+
</ul>
|
|
102
|
+
<p>No field names, no struct layout, no <code>.fbs</code> message. The material record itself depends on a Space Data Standards mint that is separately in flight.</p>
|
|
103
|
+
<h2 id="units-and-frames"><a class="anchor" href="#units-and-frames" aria-hidden="true">#</a>Units and frames</h2>
|
|
104
|
+
<p>Not fixed.</p>
|
|
105
|
+
<h2 id="sentinels"><a class="anchor" href="#sentinels" aria-hidden="true">#</a>Sentinels</h2>
|
|
106
|
+
<p>Not specified.</p>
|
|
107
|
+
<h2 id="identity"><a class="anchor" href="#identity" aria-hidden="true">#</a>Identity</h2>
|
|
108
|
+
<p>Not specified. Obstacles will need stable identity so a consumer can attribute a blocked path to a specific obstacle and material.</p>
|
|
109
|
+
<h2 id="threading"><a class="anchor" href="#threading" aria-hidden="true">#</a>Threading</h2>
|
|
110
|
+
<p>Expected to inherit <code>wasm32-wasip1-threads</code> and the propagator family's shard-write discipline, as the RF family does. Not specified.</p>
|
|
111
|
+
<h2 id="error-codes"><a class="anchor" href="#error-codes" aria-hidden="true">#</a>Error codes</h2>
|
|
112
|
+
<p>Not specified.</p>
|
|
113
|
+
<h2 id="lifetime"><a class="anchor" href="#lifetime" aria-hidden="true">#</a>Lifetime</h2>
|
|
114
|
+
<p>Not specified. An obstacle set is the obvious candidate for cross-call persistence in this family — build the acceleration structure once, query it many times — which is exactly the kind of decision the ABI freeze has to make.</p>
|
|
115
|
+
<h2 id="parity-envelope"><a class="anchor" href="#parity-envelope" aria-hidden="true">#</a>Parity envelope</h2>
|
|
116
|
+
<p>Not specified. Ray–geometry intersection is a classic source of cross-runtime floating-point divergence, so a byte-identical parity requirement here will be harder to satisfy than in most families and should be assumed to be strict.</p>
|
|
117
|
+
<h2 id="consumer-seam"><a class="anchor" href="#consumer-seam" aria-hidden="true">#</a>Consumer seam</h2>
|
|
118
|
+
<p>Not implemented.</p>
|
|
119
|
+
<h2 id="guest-c-example"><a class="anchor" href="#guest-c-example" aria-hidden="true">#</a>Guest C++ example</h2>
|
|
120
|
+
<p>None.</p>
|
|
121
|
+
<h2 id="prerequisites-before-this-family-can-be-ratified"><a class="anchor" href="#prerequisites-before-this-family-can-be-ratified" aria-hidden="true">#</a>Prerequisites before this family can be ratified</h2>
|
|
122
|
+
<ul>
|
|
123
|
+
<li>The RF bulk link-matrix <code>.fbs</code> must exist first; this family extends it.</li>
|
|
124
|
+
<li>The Space Data Standards material record must be minted.</li>
|
|
125
|
+
<li>An ABI-freeze consultation with the module-SDK owner is a stated precondition and has not happened.</li>
|
|
126
|
+
</ul>
|
|
127
|
+
<p>Until those land, an integrator needing occlusion should compute it inside their own module against geometry they supply themselves, and expect to migrate when the shared contract exists.</p>
|
|
128
|
+
<section class="playground" id="playground-slot" data-family="obstruction" data-playground="pending" aria-labelledby="playground-title">
|
|
129
|
+
<h2 id="playground-title">Playground</h2>
|
|
130
|
+
<p>
|
|
131
|
+
An in-browser build-and-run playground for the <code>obstruction</code> harness
|
|
132
|
+
mounts here. It is being built under the graph task
|
|
133
|
+
<code>sdk-playground-emception</code>; this slot is its reserved mount
|
|
134
|
+
point and is intentionally empty until that lands.
|
|
135
|
+
</p>
|
|
136
|
+
</section>
|
|
137
|
+
<p class="doc-footer">
|
|
138
|
+
Source of truth for this page:
|
|
139
|
+
<code>docs/families/obstruction.md</code>. Regenerate with
|
|
140
|
+
<code>npm run build:docs</code>.
|
|
141
|
+
</p>
|
|
142
|
+
</main>
|
|
143
|
+
<nav class="rail" aria-label="On this page"><h2>On this page</h2><ul><li><a class="depth-2" href="#doctrine">Doctrine</a></li>
|
|
144
|
+
<li><a class="depth-2" href="#capability">Capability</a></li>
|
|
145
|
+
<li><a class="depth-2" href="#import-and-export-set">Import and export set</a></li>
|
|
146
|
+
<li><a class="depth-2" href="#wire-layout">Wire layout</a></li>
|
|
147
|
+
<li><a class="depth-2" href="#units-and-frames">Units and frames</a></li>
|
|
148
|
+
<li><a class="depth-2" href="#sentinels">Sentinels</a></li>
|
|
149
|
+
<li><a class="depth-2" href="#identity">Identity</a></li>
|
|
150
|
+
<li><a class="depth-2" href="#threading">Threading</a></li>
|
|
151
|
+
<li><a class="depth-2" href="#error-codes">Error codes</a></li>
|
|
152
|
+
<li><a class="depth-2" href="#lifetime">Lifetime</a></li>
|
|
153
|
+
<li><a class="depth-2" href="#parity-envelope">Parity envelope</a></li>
|
|
154
|
+
<li><a class="depth-2" href="#consumer-seam">Consumer seam</a></li>
|
|
155
|
+
<li><a class="depth-2" href="#guest-c-example">Guest C++ example</a></li>
|
|
156
|
+
<li><a class="depth-2" href="#prerequisites-before-this-family-can-be-ratified">Prerequisites before this family can be ratified</a></li></ul></nav>
|
|
157
|
+
</div>
|
|
158
|
+
<section id="stack" class="section" aria-labelledby="stack-title">
|
|
159
|
+
<div class="section-head">
|
|
160
|
+
<p class="eyebrow">SDN Stack</p>
|
|
161
|
+
<h2 id="stack-title">Connected sites</h2>
|
|
162
|
+
</div>
|
|
163
|
+
<div class="link-list">
|
|
164
|
+
<a href="https://spacedatastandards.org/">
|
|
165
|
+
<span>Standards</span>
|
|
166
|
+
<small>Canonical schemas, record contracts, and generated bindings.</small>
|
|
167
|
+
</a>
|
|
168
|
+
<a href="https://digitalarsenal.github.io/flatbuffers/">
|
|
169
|
+
<span>FlatBuffers</span>
|
|
170
|
+
<small>Binary encoding, schema tooling, and runtime documentation.</small>
|
|
171
|
+
</a>
|
|
172
|
+
<a href="https://digitalarsenal.github.io/flatsql/">
|
|
173
|
+
<span>FlatSQL</span>
|
|
174
|
+
<small>SQL-style queries over FlatBuffer-backed datasets and streams.</small>
|
|
175
|
+
</a>
|
|
176
|
+
<a href="https://spacedatanetwork.org/">
|
|
177
|
+
<span>SDN</span>
|
|
178
|
+
<small>Distributed publication, discovery, delivery, and marketplace infrastructure.</small>
|
|
179
|
+
</a>
|
|
180
|
+
<a href="https://digitalarsenal.github.io/space-data-module-sdk/" class="active">
|
|
181
|
+
<span>Module SDK</span>
|
|
182
|
+
<small>WASM module packaging, validation, and host compatibility tooling.</small>
|
|
183
|
+
</a>
|
|
184
|
+
</div>
|
|
185
|
+
</section>
|
|
186
|
+
<footer class="site-footer">
|
|
187
|
+
Space Data Module SDK — Apache-2.0. Every ABI page renders a Markdown
|
|
188
|
+
source in <code>docs/</code>; edit the Markdown, never the HTML.
|
|
189
|
+
</footer>
|
|
190
|
+
</body>
|
|
191
|
+
</html>
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Obstruction
|
|
2
|
+
|
|
3
|
+
**Status: DESIGNED, and thinner than any other Designed family.** One paragraph
|
|
4
|
+
of intent exists, in one open task, blocked behind two unfinished prerequisites.
|
|
5
|
+
There is no schema, no header, no code, and no package. This page exists so the
|
|
6
|
+
scope is stated honestly rather than implied by silence.
|
|
7
|
+
|
|
8
|
+
## Doctrine
|
|
9
|
+
|
|
10
|
+
An obstruction module answers whether a path between two points is blocked, and
|
|
11
|
+
by what, given arbitrary three-dimensional geometry with physical material
|
|
12
|
+
properties. It is a service to other families rather than a family a consumer
|
|
13
|
+
invokes directly: RF asks it whether a link is occluded and how much loss the
|
|
14
|
+
obstruction imposes, sensors ask it whether a target is visible, and event
|
|
15
|
+
physics asks it what a fragment would strike.
|
|
16
|
+
|
|
17
|
+
It is currently designed as an *extension* of the RF bulk link-matrix ABI rather
|
|
18
|
+
than as a standalone contract, so its shape is downstream of that family's
|
|
19
|
+
schema.
|
|
20
|
+
|
|
21
|
+
## Capability
|
|
22
|
+
|
|
23
|
+
Take an obstacle set and a set of paths; return occlusion and the loss or
|
|
24
|
+
visibility consequence of that occlusion. Compute only — no scene writes, no
|
|
25
|
+
data fetching.
|
|
26
|
+
|
|
27
|
+
## Import and export set
|
|
28
|
+
|
|
29
|
+
**Not specified.** Nothing exists.
|
|
30
|
+
|
|
31
|
+
## Wire layout
|
|
32
|
+
|
|
33
|
+
**Drafted in prose only.** The intended obstacle set is:
|
|
34
|
+
|
|
35
|
+
- Triangle meshes, and analytic shapes — sphere, ellipsoid, box, extruded
|
|
36
|
+
polygon.
|
|
37
|
+
- Each obstacle references a material record carrying relative permittivity,
|
|
38
|
+
conductivity, reflection, absorption and transmission loss as a function of
|
|
39
|
+
frequency, a roughness or scattering class, and a validity range, following
|
|
40
|
+
the ITU-R P.2040 material classes.
|
|
41
|
+
|
|
42
|
+
No field names, no struct layout, no `.fbs` message. The material record itself
|
|
43
|
+
depends on a Space Data Standards mint that is separately in flight.
|
|
44
|
+
|
|
45
|
+
## Units and frames
|
|
46
|
+
|
|
47
|
+
Not fixed.
|
|
48
|
+
|
|
49
|
+
## Sentinels
|
|
50
|
+
|
|
51
|
+
Not specified.
|
|
52
|
+
|
|
53
|
+
## Identity
|
|
54
|
+
|
|
55
|
+
Not specified. Obstacles will need stable identity so a consumer can attribute a
|
|
56
|
+
blocked path to a specific obstacle and material.
|
|
57
|
+
|
|
58
|
+
## Threading
|
|
59
|
+
|
|
60
|
+
Expected to inherit `wasm32-wasip1-threads` and the propagator family's
|
|
61
|
+
shard-write discipline, as the RF family does. Not specified.
|
|
62
|
+
|
|
63
|
+
## Error codes
|
|
64
|
+
|
|
65
|
+
Not specified.
|
|
66
|
+
|
|
67
|
+
## Lifetime
|
|
68
|
+
|
|
69
|
+
Not specified. An obstacle set is the obvious candidate for cross-call
|
|
70
|
+
persistence in this family — build the acceleration structure once, query it
|
|
71
|
+
many times — which is exactly the kind of decision the ABI freeze has to make.
|
|
72
|
+
|
|
73
|
+
## Parity envelope
|
|
74
|
+
|
|
75
|
+
Not specified. Ray–geometry intersection is a classic source of cross-runtime
|
|
76
|
+
floating-point divergence, so a byte-identical parity requirement here will be
|
|
77
|
+
harder to satisfy than in most families and should be assumed to be strict.
|
|
78
|
+
|
|
79
|
+
## Consumer seam
|
|
80
|
+
|
|
81
|
+
Not implemented.
|
|
82
|
+
|
|
83
|
+
## Guest C++ example
|
|
84
|
+
|
|
85
|
+
None.
|
|
86
|
+
|
|
87
|
+
## Prerequisites before this family can be ratified
|
|
88
|
+
|
|
89
|
+
- The RF bulk link-matrix `.fbs` must exist first; this family extends it.
|
|
90
|
+
- The Space Data Standards material record must be minted.
|
|
91
|
+
- An ABI-freeze consultation with the module-SDK owner is a stated precondition
|
|
92
|
+
and has not happened.
|
|
93
|
+
|
|
94
|
+
Until those land, an integrator needing occlusion should compute it inside their
|
|
95
|
+
own module against geometry they supply themselves, and expect to migrate when
|
|
96
|
+
the shared contract exists.
|