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,157 @@
|
|
|
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: PLANNED. This family is a ratified entry in the harness-family" />
|
|
7
|
+
<title>Reentry — 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"><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" aria-current="page"><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> / Event physics</p>
|
|
86
|
+
<h1>Reentry</h1>
|
|
87
|
+
<p class="doc-meta"><span class="pill pill-planned">planned</span><span>Planned. This family is a ratified entry in the harness-family taxonomy; its individual shape has not been ratified and nothing is implemented.</span></p>
|
|
88
|
+
<p><strong>Status: PLANNED.</strong> This family is a ratified entry in the harness-family taxonomy. Its individual shape has not been ratified, and nothing is implemented. This page states scope and status; it is not a contract, and it does not imply parity with the Designed tier.</p>
|
|
89
|
+
<h2 id="scope"><a class="anchor" href="#scope" aria-hidden="true">#</a>Scope</h2>
|
|
90
|
+
<p>Atmospheric reentry: the descent corridor, aerothermal heating, ablation and demise of components, and the surviving-debris ground footprint.</p>
|
|
91
|
+
<h2 id="what-exists-today"><a class="anchor" href="#what-exists-today" aria-hidden="true">#</a>What exists today</h2>
|
|
92
|
+
<p>No physics-kernel harness. An open, low-priority task describes a reentry dynamics module covering corridor, heating and footprint with visualization, blocked behind SDK prerequisites. A closed reentry-related package exists but it is a data-source provider, not a physics kernel — it brings data in, it does not model descent.</p>
|
|
93
|
+
<p>Reentry depends on the environment family for atmospheric density and on a signature or materials contract for demise modelling, neither of which exists.</p>
|
|
94
|
+
<h2 id="what-ratification-requires"><a class="anchor" href="#what-ratification-requires" aria-hidden="true">#</a>What ratification requires</h2>
|
|
95
|
+
<p>A family reaches Designed when an ABI has been drafted against a real consumer, and Shipped only when all of the following exist:</p>
|
|
96
|
+
<ul>
|
|
97
|
+
<li>A single <code>.fbs</code> schema as the source of the wire layout.</li>
|
|
98
|
+
<li>A generated ABI header with size and offset locks, plus a drift gate that fails when the schema and the committed header disagree.</li>
|
|
99
|
+
<li>Declared units and frames per field, named sentinels, and named negative error codes.</li>
|
|
100
|
+
<li>A conformance kit carrying its own negative control, and a reference module.</li>
|
|
101
|
+
<li>A stated tri-runtime parity envelope.</li>
|
|
102
|
+
<li>Exactly one generic consumer port.</li>
|
|
103
|
+
</ul>
|
|
104
|
+
<p>Until then, do not build against this family. If your work falls in this scope and cannot wait, build a records-in, records-out module through the <a href="../byo-wasm-quickstart.html">BYO-wasm quickstart</a> — that path needs no harness and is available now — and expect to migrate to the family ABI when it is ratified.</p>
|
|
105
|
+
<section class="playground" id="playground-slot" data-family="reentry" data-playground="pending" aria-labelledby="playground-title">
|
|
106
|
+
<h2 id="playground-title">Playground</h2>
|
|
107
|
+
<p>
|
|
108
|
+
An in-browser build-and-run playground for the <code>reentry</code> harness
|
|
109
|
+
mounts here. It is being built under the graph task
|
|
110
|
+
<code>sdk-playground-emception</code>; this slot is its reserved mount
|
|
111
|
+
point and is intentionally empty until that lands.
|
|
112
|
+
</p>
|
|
113
|
+
</section>
|
|
114
|
+
<p class="doc-footer">
|
|
115
|
+
Source of truth for this page:
|
|
116
|
+
<code>docs/families/reentry.md</code>. Regenerate with
|
|
117
|
+
<code>npm run build:docs</code>.
|
|
118
|
+
</p>
|
|
119
|
+
</main>
|
|
120
|
+
<nav class="rail" aria-label="On this page"><h2>On this page</h2><ul><li><a class="depth-2" href="#scope">Scope</a></li>
|
|
121
|
+
<li><a class="depth-2" href="#what-exists-today">What exists today</a></li>
|
|
122
|
+
<li><a class="depth-2" href="#what-ratification-requires">What ratification requires</a></li></ul></nav>
|
|
123
|
+
</div>
|
|
124
|
+
<section id="stack" class="section" aria-labelledby="stack-title">
|
|
125
|
+
<div class="section-head">
|
|
126
|
+
<p class="eyebrow">SDN Stack</p>
|
|
127
|
+
<h2 id="stack-title">Connected sites</h2>
|
|
128
|
+
</div>
|
|
129
|
+
<div class="link-list">
|
|
130
|
+
<a href="https://spacedatastandards.org/">
|
|
131
|
+
<span>Standards</span>
|
|
132
|
+
<small>Canonical schemas, record contracts, and generated bindings.</small>
|
|
133
|
+
</a>
|
|
134
|
+
<a href="https://digitalarsenal.github.io/flatbuffers/">
|
|
135
|
+
<span>FlatBuffers</span>
|
|
136
|
+
<small>Binary encoding, schema tooling, and runtime documentation.</small>
|
|
137
|
+
</a>
|
|
138
|
+
<a href="https://digitalarsenal.github.io/flatsql/">
|
|
139
|
+
<span>FlatSQL</span>
|
|
140
|
+
<small>SQL-style queries over FlatBuffer-backed datasets and streams.</small>
|
|
141
|
+
</a>
|
|
142
|
+
<a href="https://spacedatanetwork.org/">
|
|
143
|
+
<span>SDN</span>
|
|
144
|
+
<small>Distributed publication, discovery, delivery, and marketplace infrastructure.</small>
|
|
145
|
+
</a>
|
|
146
|
+
<a href="https://digitalarsenal.github.io/space-data-module-sdk/" class="active">
|
|
147
|
+
<span>Module SDK</span>
|
|
148
|
+
<small>WASM module packaging, validation, and host compatibility tooling.</small>
|
|
149
|
+
</a>
|
|
150
|
+
</div>
|
|
151
|
+
</section>
|
|
152
|
+
<footer class="site-footer">
|
|
153
|
+
Space Data Module SDK — Apache-2.0. Every ABI page renders a Markdown
|
|
154
|
+
source in <code>docs/</code>; edit the Markdown, never the HTML.
|
|
155
|
+
</footer>
|
|
156
|
+
</body>
|
|
157
|
+
</html>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Reentry
|
|
2
|
+
|
|
3
|
+
**Status: PLANNED.** This family is a ratified entry in the harness-family
|
|
4
|
+
taxonomy. Its individual shape has not been ratified, and nothing is
|
|
5
|
+
implemented. This page states scope and status; it is not a contract, and it
|
|
6
|
+
does not imply parity with the Designed tier.
|
|
7
|
+
|
|
8
|
+
## Scope
|
|
9
|
+
|
|
10
|
+
Atmospheric reentry: the descent corridor, aerothermal heating, ablation and demise of components, and the surviving-debris ground footprint.
|
|
11
|
+
|
|
12
|
+
## What exists today
|
|
13
|
+
|
|
14
|
+
No physics-kernel harness. An open, low-priority task describes a reentry dynamics module covering corridor, heating and footprint with visualization, blocked behind SDK prerequisites. A closed reentry-related package exists but it is a data-source provider, not a physics kernel — it brings data in, it does not model descent.
|
|
15
|
+
|
|
16
|
+
Reentry depends on the environment family for atmospheric density and on a signature or materials contract for demise modelling, neither of which exists.
|
|
17
|
+
|
|
18
|
+
## What ratification requires
|
|
19
|
+
|
|
20
|
+
A family reaches Designed when an ABI has been drafted against a real consumer,
|
|
21
|
+
and Shipped only when all of the following exist:
|
|
22
|
+
|
|
23
|
+
- A single `.fbs` schema as the source of the wire layout.
|
|
24
|
+
- A generated ABI header with size and offset locks, plus a drift gate that
|
|
25
|
+
fails when the schema and the committed header disagree.
|
|
26
|
+
- Declared units and frames per field, named sentinels, and named negative error
|
|
27
|
+
codes.
|
|
28
|
+
- A conformance kit carrying its own negative control, and a reference module.
|
|
29
|
+
- A stated tri-runtime parity envelope.
|
|
30
|
+
- Exactly one generic consumer port.
|
|
31
|
+
|
|
32
|
+
Until then, do not build against this family. If your work falls in this scope
|
|
33
|
+
and cannot wait, build a records-in, records-out module through the
|
|
34
|
+
[BYO-wasm quickstart](../byo-wasm-quickstart.html) — that path needs no harness
|
|
35
|
+
and is available now — and expect to migrate to the family ABI when it is
|
|
36
|
+
ratified.
|
|
@@ -0,0 +1,193 @@
|
|
|
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. The RF ABI has been drafted against a real paying" />
|
|
7
|
+
<title>RF — 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" aria-current="page"><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"><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>RF</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.</strong> The RF ABI has been drafted against a real paying consumer, and the boundary of what will and will not be a public contract has been ruled. No <code>.fbs</code>, no generated header, no conformance kit and no reference module exist yet. Nothing on this page is a stable ABI.</p>
|
|
89
|
+
<h2 id="doctrine"><a class="anchor" href="#doctrine" aria-hidden="true">#</a>Doctrine</h2>
|
|
90
|
+
<p>Read this section before anything else, because it decides whether you need this family at all.</p>
|
|
91
|
+
<p><strong>Most third-party RF does not need a harness.</strong> RF that takes records in and emits records out — link budgets, access intervals, coverage products expressed as <code>$RFL</code>, <code>$ACI</code> and <code>$CVP</code>-class records — is an ordinary invoke-envelope module. It has no harness requirement, no ABI freeze to wait for, and it is the entry point for a vendor bringing an existing RF engine. If your engine computes propagation loss, link margin, interference or coverage and hands back numbers, this is your path today, and it is available now: build a BYO-wasm module, emit records, publish it.</p>
|
|
92
|
+
<p><strong>The RF harness family exists only for RF that writes scene state.</strong> A module that draws footprints, writes entity or render state, or otherwise participates in the consumer's scene graph needs the harness, because that is where a byte-exact shared-memory contract is required.</p>
|
|
93
|
+
<p><strong>The closed scalar <code>rf_*</code> kernel ABI is never the public contract.</strong> A set of closed, encrypted, individually licensed scalar RF kernels exists — free-space path loss, link budget, antenna pattern, gaseous and rain and cloud attenuation, diffraction, Doppler and Fresnel geometry, terrain solvers, empirical and Longley-Rice models, bit-error-rate and modulation. Their scalar kernel-op ABI is internal by permanent ruling, not by maturity. It will not be offered as a third-party contract, and a third-party module must never be written against it.</p>
|
|
94
|
+
<h2 id="capability"><a class="anchor" href="#capability" aria-hidden="true">#</a>Capability</h2>
|
|
95
|
+
<p>A harness-class RF module computes link geometry and radio physics over many links and many epochs, and writes its results into caller-provided memory. It does not fetch data, does not decide tasking, and does not own the entities it computes over.</p>
|
|
96
|
+
<h2 id="import-and-export-set"><a class="anchor" href="#import-and-export-set" aria-hidden="true">#</a>Import and export set</h2>
|
|
97
|
+
<p><strong>Not specified.</strong> The design calls for one aligned-binary invocation covering many links and epochs, following the propagator family's export-set template (init, compute, destroy, plus optional typed ingest and introspection), with the symbol names to be fixed when the header is generated. <code>orbpro_rf_abi.h</code> does not exist.</p>
|
|
98
|
+
<h2 id="wire-layout"><a class="anchor" href="#wire-layout" aria-hidden="true">#</a>Wire layout</h2>
|
|
99
|
+
<p><strong>Drafted, not generated.</strong> The drafted bulk link-matrix ABI is a single <code>.fbs</code>-defined invocation that emits, in one call:</p>
|
|
100
|
+
<div class="table-wrap"><table><thead><tr><th>Output</th><th>Shape</th></tr></thead><tbody><tr><td>Link samples</td><td>Per-link, per-epoch scalar results</td></tr><tr><td>Intervals</td><td>Access and outage intervals derived from those samples</td></tr><tr><td>Coverage grid</td><td>A gridded coverage product</td></tr><tr><td>Coverage rings</td><td>A packed ring representation of the same coverage</td></tr></tbody></table></div>
|
|
101
|
+
<p>Receiver and channel grouping for interference aggregation happens inside the module, not in the consumer — a design decision, so that an interference computation is never split across the ABI boundary.</p>
|
|
102
|
+
<p>No <code>.fbs</code> file for this exists in the tree yet. Field names, offsets and sizes are unfixed.</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. The scalar physics behind the closed kernels works in decibel-watt power and decibel loss with linear-power summation for incoherent aggregation, and any published ABI will have to state per-field units explicitly the way the propagator ABI does. Do not infer them from this page.</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. Links will need a stable identity across a bulk call so a consumer can associate a sample row with the link that produced it.</p>
|
|
109
|
+
<h2 id="threading"><a class="anchor" href="#threading" aria-hidden="true">#</a>Threading</h2>
|
|
110
|
+
<p><code>wasm32-wasip1-threads</code>, and the drafted design explicitly reuses the propagator family's shard-write discipline for its bulk outputs: the same base pointer is given to every thread, each thread writes a disjoint range, each writes only its own row, and a failed row is zeroed rather than left partially written. That discipline is the one part of this family that is already settled, because it is inherited rather than invented.</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. Expect the propagator family's contract: a real, idempotent teardown proven by a steady-state leak test.</p>
|
|
115
|
+
<h2 id="parity-envelope"><a class="anchor" href="#parity-envelope" aria-hidden="true">#</a>Parity envelope</h2>
|
|
116
|
+
<p>Cross-runtime parity claims for RF are currently blocked. The existing closed RF packages are not isomorphic, and their manifests declare browser and node targets while in practice being gated on WasmEdge — an open defect. An embedded WasmEdge parity lane is a prerequisite before any RF parity claim can be made at all.</p>
|
|
117
|
+
<h2 id="consumer-seam"><a class="anchor" href="#consumer-seam" aria-hidden="true">#</a>Consumer seam</h2>
|
|
118
|
+
<p>One generic RF port on the consumer side, taking the module as a pluggable parameter. 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. Publishing a skeleton against an unfixed wire layout would create exactly the drift this family is being designed to avoid.</p>
|
|
121
|
+
<h2 id="what-to-do-today"><a class="anchor" href="#what-to-do-today" aria-hidden="true">#</a>What to do today</h2>
|
|
122
|
+
<p>If you are a vendor with an RF engine and you want to ship on the Space Data Network now:</p>
|
|
123
|
+
<ol>
|
|
124
|
+
<li>Build a records-in, records-out module. No harness required.</li>
|
|
125
|
+
<li>Follow the <a href="../byo-wasm-quickstart.html">BYO-wasm quickstart</a> for the toolchain pin and the multi-TU build.</li>
|
|
126
|
+
<li>Emit <code>$RFL</code>, <code>$ACI</code> and <code>$CVP</code>-class records. Use the Space Data Standards C++ headers for the record types.</li>
|
|
127
|
+
<li>Run <a href="../conformance.html">conformance</a> and the <a href="../tri-runtime-parity-gate.html">parity gate</a>, then <a href="../protect-and-sign.html">protect and sign</a>.</li>
|
|
128
|
+
</ol>
|
|
129
|
+
<p>That path is real today and does not wait on this family's ratification. Come back to the harness only if your module must write scene state.</p>
|
|
130
|
+
<section class="playground" id="playground-slot" data-family="rf" data-playground="pending" aria-labelledby="playground-title">
|
|
131
|
+
<h2 id="playground-title">Playground</h2>
|
|
132
|
+
<p>
|
|
133
|
+
An in-browser build-and-run playground for the <code>rf</code> harness
|
|
134
|
+
mounts here. It is being built under the graph task
|
|
135
|
+
<code>sdk-playground-emception</code>; this slot is its reserved mount
|
|
136
|
+
point and is intentionally empty until that lands.
|
|
137
|
+
</p>
|
|
138
|
+
</section>
|
|
139
|
+
<p class="doc-footer">
|
|
140
|
+
Source of truth for this page:
|
|
141
|
+
<code>docs/families/rf.md</code>. Regenerate with
|
|
142
|
+
<code>npm run build:docs</code>.
|
|
143
|
+
</p>
|
|
144
|
+
</main>
|
|
145
|
+
<nav class="rail" aria-label="On this page"><h2>On this page</h2><ul><li><a class="depth-2" href="#doctrine">Doctrine</a></li>
|
|
146
|
+
<li><a class="depth-2" href="#capability">Capability</a></li>
|
|
147
|
+
<li><a class="depth-2" href="#import-and-export-set">Import and export set</a></li>
|
|
148
|
+
<li><a class="depth-2" href="#wire-layout">Wire layout</a></li>
|
|
149
|
+
<li><a class="depth-2" href="#units-and-frames">Units and frames</a></li>
|
|
150
|
+
<li><a class="depth-2" href="#sentinels">Sentinels</a></li>
|
|
151
|
+
<li><a class="depth-2" href="#identity">Identity</a></li>
|
|
152
|
+
<li><a class="depth-2" href="#threading">Threading</a></li>
|
|
153
|
+
<li><a class="depth-2" href="#error-codes">Error codes</a></li>
|
|
154
|
+
<li><a class="depth-2" href="#lifetime">Lifetime</a></li>
|
|
155
|
+
<li><a class="depth-2" href="#parity-envelope">Parity envelope</a></li>
|
|
156
|
+
<li><a class="depth-2" href="#consumer-seam">Consumer seam</a></li>
|
|
157
|
+
<li><a class="depth-2" href="#guest-c-example">Guest C++ example</a></li>
|
|
158
|
+
<li><a class="depth-2" href="#what-to-do-today">What to do today</a></li></ul></nav>
|
|
159
|
+
</div>
|
|
160
|
+
<section id="stack" class="section" aria-labelledby="stack-title">
|
|
161
|
+
<div class="section-head">
|
|
162
|
+
<p class="eyebrow">SDN Stack</p>
|
|
163
|
+
<h2 id="stack-title">Connected sites</h2>
|
|
164
|
+
</div>
|
|
165
|
+
<div class="link-list">
|
|
166
|
+
<a href="https://spacedatastandards.org/">
|
|
167
|
+
<span>Standards</span>
|
|
168
|
+
<small>Canonical schemas, record contracts, and generated bindings.</small>
|
|
169
|
+
</a>
|
|
170
|
+
<a href="https://digitalarsenal.github.io/flatbuffers/">
|
|
171
|
+
<span>FlatBuffers</span>
|
|
172
|
+
<small>Binary encoding, schema tooling, and runtime documentation.</small>
|
|
173
|
+
</a>
|
|
174
|
+
<a href="https://digitalarsenal.github.io/flatsql/">
|
|
175
|
+
<span>FlatSQL</span>
|
|
176
|
+
<small>SQL-style queries over FlatBuffer-backed datasets and streams.</small>
|
|
177
|
+
</a>
|
|
178
|
+
<a href="https://spacedatanetwork.org/">
|
|
179
|
+
<span>SDN</span>
|
|
180
|
+
<small>Distributed publication, discovery, delivery, and marketplace infrastructure.</small>
|
|
181
|
+
</a>
|
|
182
|
+
<a href="https://digitalarsenal.github.io/space-data-module-sdk/" class="active">
|
|
183
|
+
<span>Module SDK</span>
|
|
184
|
+
<small>WASM module packaging, validation, and host compatibility tooling.</small>
|
|
185
|
+
</a>
|
|
186
|
+
</div>
|
|
187
|
+
</section>
|
|
188
|
+
<footer class="site-footer">
|
|
189
|
+
Space Data Module SDK — Apache-2.0. Every ABI page renders a Markdown
|
|
190
|
+
source in <code>docs/</code>; edit the Markdown, never the HTML.
|
|
191
|
+
</footer>
|
|
192
|
+
</body>
|
|
193
|
+
</html>
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# RF
|
|
2
|
+
|
|
3
|
+
**Status: DESIGNED.** The RF ABI has been drafted against a real paying
|
|
4
|
+
consumer, and the boundary of what will and will not be a public contract has
|
|
5
|
+
been ruled. No `.fbs`, no generated header, no conformance kit and no reference
|
|
6
|
+
module exist yet. Nothing on this page is a stable ABI.
|
|
7
|
+
|
|
8
|
+
## Doctrine
|
|
9
|
+
|
|
10
|
+
Read this section before anything else, because it decides whether you need this
|
|
11
|
+
family at all.
|
|
12
|
+
|
|
13
|
+
**Most third-party RF does not need a harness.** RF that takes records in and
|
|
14
|
+
emits records out — link budgets, access intervals, coverage products expressed
|
|
15
|
+
as `$RFL`, `$ACI` and `$CVP`-class records — is an ordinary invoke-envelope
|
|
16
|
+
module. It has no harness requirement, no ABI freeze to wait for, and it is the
|
|
17
|
+
entry point for a vendor bringing an existing RF engine. If your engine computes
|
|
18
|
+
propagation loss, link margin, interference or coverage and hands back numbers,
|
|
19
|
+
this is your path today, and it is available now: build a BYO-wasm module, emit
|
|
20
|
+
records, publish it.
|
|
21
|
+
|
|
22
|
+
**The RF harness family exists only for RF that writes scene state.** A module
|
|
23
|
+
that draws footprints, writes entity or render state, or otherwise participates
|
|
24
|
+
in the consumer's scene graph needs the harness, because that is where a
|
|
25
|
+
byte-exact shared-memory contract is required.
|
|
26
|
+
|
|
27
|
+
**The closed scalar `rf_*` kernel ABI is never the public contract.** A set of
|
|
28
|
+
closed, encrypted, individually licensed scalar RF kernels exists — free-space
|
|
29
|
+
path loss, link budget, antenna pattern, gaseous and rain and cloud attenuation,
|
|
30
|
+
diffraction, Doppler and Fresnel geometry, terrain solvers, empirical and
|
|
31
|
+
Longley-Rice models, bit-error-rate and modulation. Their scalar kernel-op ABI
|
|
32
|
+
is internal by permanent ruling, not by maturity. It will not be offered as a
|
|
33
|
+
third-party contract, and a third-party module must never be written against it.
|
|
34
|
+
|
|
35
|
+
## Capability
|
|
36
|
+
|
|
37
|
+
A harness-class RF module computes link geometry and radio physics over many
|
|
38
|
+
links and many epochs, and writes its results into caller-provided memory. It
|
|
39
|
+
does not fetch data, does not decide tasking, and does not own the entities it
|
|
40
|
+
computes over.
|
|
41
|
+
|
|
42
|
+
## Import and export set
|
|
43
|
+
|
|
44
|
+
**Not specified.** The design calls for one aligned-binary invocation covering
|
|
45
|
+
many links and epochs, following the propagator family's export-set template
|
|
46
|
+
(init, compute, destroy, plus optional typed ingest and introspection), with the
|
|
47
|
+
symbol names to be fixed when the header is generated. `orbpro_rf_abi.h` does
|
|
48
|
+
not exist.
|
|
49
|
+
|
|
50
|
+
## Wire layout
|
|
51
|
+
|
|
52
|
+
**Drafted, not generated.** The drafted bulk link-matrix ABI is a single
|
|
53
|
+
`.fbs`-defined invocation that emits, in one call:
|
|
54
|
+
|
|
55
|
+
| Output | Shape |
|
|
56
|
+
| --- | --- |
|
|
57
|
+
| Link samples | Per-link, per-epoch scalar results |
|
|
58
|
+
| Intervals | Access and outage intervals derived from those samples |
|
|
59
|
+
| Coverage grid | A gridded coverage product |
|
|
60
|
+
| Coverage rings | A packed ring representation of the same coverage |
|
|
61
|
+
|
|
62
|
+
Receiver and channel grouping for interference aggregation happens inside the
|
|
63
|
+
module, not in the consumer — a design decision, so that an interference
|
|
64
|
+
computation is never split across the ABI boundary.
|
|
65
|
+
|
|
66
|
+
No `.fbs` file for this exists in the tree yet. Field names, offsets and sizes
|
|
67
|
+
are unfixed.
|
|
68
|
+
|
|
69
|
+
## Units and frames
|
|
70
|
+
|
|
71
|
+
Not fixed. The scalar physics behind the closed kernels works in decibel-watt
|
|
72
|
+
power and decibel loss with linear-power summation for incoherent aggregation,
|
|
73
|
+
and any published ABI will have to state per-field units explicitly the way the
|
|
74
|
+
propagator ABI does. Do not infer them from this page.
|
|
75
|
+
|
|
76
|
+
## Sentinels
|
|
77
|
+
|
|
78
|
+
Not specified.
|
|
79
|
+
|
|
80
|
+
## Identity
|
|
81
|
+
|
|
82
|
+
Not specified. Links will need a stable identity across a bulk call so a
|
|
83
|
+
consumer can associate a sample row with the link that produced it.
|
|
84
|
+
|
|
85
|
+
## Threading
|
|
86
|
+
|
|
87
|
+
`wasm32-wasip1-threads`, and the drafted design explicitly reuses the propagator
|
|
88
|
+
family's shard-write discipline for its bulk outputs: the same base pointer is
|
|
89
|
+
given to every thread, each thread writes a disjoint range, each writes only its
|
|
90
|
+
own row, and a failed row is zeroed rather than left partially written. That
|
|
91
|
+
discipline is the one part of this family that is already settled, because it is
|
|
92
|
+
inherited rather than invented.
|
|
93
|
+
|
|
94
|
+
## Error codes
|
|
95
|
+
|
|
96
|
+
Not specified.
|
|
97
|
+
|
|
98
|
+
## Lifetime
|
|
99
|
+
|
|
100
|
+
Not specified. Expect the propagator family's contract: a real, idempotent
|
|
101
|
+
teardown proven by a steady-state leak test.
|
|
102
|
+
|
|
103
|
+
## Parity envelope
|
|
104
|
+
|
|
105
|
+
Cross-runtime parity claims for RF are currently blocked. The existing closed RF
|
|
106
|
+
packages are not isomorphic, and their manifests declare browser and node
|
|
107
|
+
targets while in practice being gated on WasmEdge — an open defect. An embedded
|
|
108
|
+
WasmEdge parity lane is a prerequisite before any RF parity claim can be made at
|
|
109
|
+
all.
|
|
110
|
+
|
|
111
|
+
## Consumer seam
|
|
112
|
+
|
|
113
|
+
One generic RF port on the consumer side, taking the module as a pluggable
|
|
114
|
+
parameter. Not implemented.
|
|
115
|
+
|
|
116
|
+
## Guest C++ example
|
|
117
|
+
|
|
118
|
+
None. Publishing a skeleton against an unfixed wire layout would create exactly
|
|
119
|
+
the drift this family is being designed to avoid.
|
|
120
|
+
|
|
121
|
+
## What to do today
|
|
122
|
+
|
|
123
|
+
If you are a vendor with an RF engine and you want to ship on the Space Data
|
|
124
|
+
Network now:
|
|
125
|
+
|
|
126
|
+
1. Build a records-in, records-out module. No harness required.
|
|
127
|
+
2. Follow the [BYO-wasm quickstart](../byo-wasm-quickstart.html) for the
|
|
128
|
+
toolchain pin and the multi-TU build.
|
|
129
|
+
3. Emit `$RFL`, `$ACI` and `$CVP`-class records. Use the Space Data Standards
|
|
130
|
+
C++ headers for the record types.
|
|
131
|
+
4. Run [conformance](../conformance.html) and the
|
|
132
|
+
[parity gate](../tri-runtime-parity-gate.html), then
|
|
133
|
+
[protect and sign](../protect-and-sign.html).
|
|
134
|
+
|
|
135
|
+
That path is real today and does not wait on this family's ratification. Come
|
|
136
|
+
back to the harness only if your module must write scene state.
|