{"id":6170,"date":"2026-07-29T02:14:43","date_gmt":"2026-07-29T02:14:43","guid":{"rendered":"http:\/\/localhost:8080\/?p=6170"},"modified":"2026-07-29T02:16:12","modified_gmt":"2026-07-29T02:16:12","slug":"inside-scythe-how-a-custom-data-driven-hud-turns-unity-into-a-scientific-instrument","status":"publish","type":"post","link":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/?p=6170","title":{"rendered":"Inside SCYTHE: How a Custom, Data\u2011Driven HUD Turns Unity Into a Scientific Instrument"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/1drv.ms\/u\/c\/2d2d70fa95d61901\/IQBDcX4CvFOpS7WCUBInWJliAXXrrdtlE9IOY-AJ0D3WgSg?e=agfOjv\">https:\/\/1drv.ms\/u\/c\/2d2d70fa95d61901\/IQBDcX4CvFOpS7WCUBInWJliAXXrrdtlE9IOY-AJ0D3WgSg?e=agfOjv<\/a> (31MB Windows executable Unity App)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">We seek to create the SCYTHE_AR user experience within Unity. Most Unity heads-up displays are decorative.<br>They\u2019re layered UI canvases, animated sprites, and shader flourishes designed to <em>look<\/em> good.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SCYTHE\u2019s HUD is none of that.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s a <strong>scientific interface<\/strong> built on top of a deterministic RF laboratory. Every pixel, every indicator, every overlay is driven by real data flowing through a reproducible simulation pipeline. The HUD isn\u2019t a skin on top of the system\u2014it <em>is<\/em> the system\u2019s window into the world.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This post walks through how SCYTHE\u2019s HUD works, why it\u2019s architected this way, and what makes it fundamentally different from traditional Unity UI.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>A HUD Built on Determinism, Not Decoration<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SCYTHE\u2019s simulation core is deterministic:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fixed\u2011step simulation clock<\/li>\n\n\n\n<li>Seeded AWGN<\/li>\n\n\n\n<li>Free\u2011space attenuation<\/li>\n\n\n\n<li>ASK\/FSK\/BPSK\/QPSK modulation<\/li>\n\n\n\n<li>Reproducible TX\u2192IQ\u2192channel\u2192RX pipeline<\/li>\n\n\n\n<li>Spatial RF sampling<\/li>\n\n\n\n<li>One\u2011way Doppler from operator motion<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The HUD doesn\u2019t invent values.<br>It doesn\u2019t smooth them.<br>It doesn\u2019t \u201cfake\u201d signal strength or noise.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It reads directly from the RF pipeline every frame.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This makes the HUD a <strong>measurement instrument<\/strong>, not a UI layer.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Every Element Is Data\u2011Driven<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Signal Bars<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The five\u2011bar indicator is computed from:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>instantaneous received power<\/li>\n\n\n\n<li>SNR<\/li>\n\n\n\n<li>distance<\/li>\n\n\n\n<li>modulation type<\/li>\n\n\n\n<li>channel noise floor<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Bars rise and fall based on real RF conditions, not arbitrary thresholds.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Bearing Arrow<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The arrow pointing toward the transmitter uses:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>world\u2011space TX position<\/li>\n\n\n\n<li>operator position<\/li>\n\n\n\n<li>operator forward vector<\/li>\n\n\n\n<li>normalized bearing angle<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s a true directional indicator, not a sprite that rotates for show.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Range Rings<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Range rings are rendered using:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>inverse\u2011square attenuation<\/li>\n\n\n\n<li>scenario\u2011defined TX power<\/li>\n\n\n\n<li>deterministic spatial sampling<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">They visualize <em>actual<\/em> RF reach, not a guessed radius.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Doppler Readout<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Doppler is derived from:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>operator velocity<\/li>\n\n\n\n<li>radial component toward TX<\/li>\n\n\n\n<li>carrier frequency<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s a one\u2011way Doppler model, explicitly labeled as such.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Power\u2011Density Map<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The 2D RF field overlay is:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>approximate<\/li>\n\n\n\n<li>evidence\u2011labeled<\/li>\n\n\n\n<li>derived from free\u2011space loss<\/li>\n\n\n\n<li>updated at arbitrary world positions<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s intentionally honest about what it represents.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>TX and Operator Markers<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">These markers are not UI icons\u2014they\u2019re spatial anchors tied to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>scenario manifest<\/li>\n\n\n\n<li>character controller<\/li>\n\n\n\n<li>transmitter transform<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The HUD reflects the world, not the other way around.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>A Custom Pipeline, Not Unity UI<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SCYTHE\u2019s HUD bypasses Unity\u2019s typical UI stack.<br>Instead, it uses:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>custom C# data bindings<\/li>\n\n\n\n<li>deterministic sampling<\/li>\n\n\n\n<li>lightweight rendering<\/li>\n\n\n\n<li>built\u2011in pipeline compatibility<\/li>\n\n\n\n<li>no external dependencies<\/li>\n\n\n\n<li>no URP\/HDRP<\/li>\n\n\n\n<li>no smoothing or interpolation<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This keeps the HUD:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>fast<\/li>\n\n\n\n<li>predictable<\/li>\n\n\n\n<li>reproducible<\/li>\n\n\n\n<li>platform\u2011consistent<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">And because it\u2019s custom, it integrates seamlessly with the RF and optics subsystems.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Why This Matters<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A scientific simulator must be honest.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the HUD invents values, smooths noise, or hides uncertainty, the operator sees a <em>story<\/em>, not a measurement. SCYTHE rejects that approach. The HUD is a direct expression of the underlying physics model\u2014no more, no less.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This makes SCYTHE suitable for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>RF education<\/li>\n\n\n\n<li>algorithm prototyping<\/li>\n\n\n\n<li>scenario testing<\/li>\n\n\n\n<li>optics dataset visualization<\/li>\n\n\n\n<li>AR monocle research<\/li>\n\n\n\n<li>reproducible experiments<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s not a game HUD.<br>It\u2019s a <strong>field instrument<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What Comes Next<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As SCYTHE evolves, the HUD will expand to include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>multi\u2011transmitter overlays<\/li>\n\n\n\n<li>occlusion\u2011aware attenuation<\/li>\n\n\n\n<li>optical depth\u2011plane visualization<\/li>\n\n\n\n<li>fused RF + optical monocle overlays<\/li>\n\n\n\n<li>scenario\u2011driven RF events<\/li>\n\n\n\n<li>uncertainty cones<\/li>\n\n\n\n<li>multipath approximations (explicitly labeled)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">But the principle remains the same:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>The HUD must always show the truth of the simulation, not a stylized interpretation.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">That\u2019s the core of SCYTHE\u2019s design philosophy\u2014and the reason its HUD feels more like a scientific device than a Unity UI.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>https:\/\/1drv.ms\/u\/c\/2d2d70fa95d61901\/IQBDcX4CvFOpS7WCUBInWJliAXXrrdtlE9IOY-AJ0D3WgSg?e=agfOjv (31MB Windows executable Unity App) We seek to create the SCYTHE_AR user experience within Unity. Most Unity heads-up displays are decorative.They\u2019re layered UI canvases, animated sprites, and shader flourishes designed to look good. SCYTHE\u2019s HUD is none of that. It\u2019s a scientific interface built on top of a deterministic RF laboratory. Every pixel, every&hellip;&nbsp;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-6170","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/6170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6170"}],"version-history":[{"count":2,"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/6170\/revisions"}],"predecessor-version":[{"id":6172,"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/6170\/revisions\/6172"}],"wp:attachment":[{"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}