An operating system that obeys a conservation law.
+
StarshipOS is a bare-metal operating system built from the ground up in StarForth and C99. One compudynamic engine governs every word, message, block and virtual machine — and holds K≡1.0 on every architecture it runs on.
One engine. One fabric. Everything in it obeys the same physics.
+
+
+
StarForth
+
the language and the VM
+
A FORTH-79 compliant adaptive virtual machine written in C99. Words execute by heat: what the system uses, it keeps close. Everything a user touches is StarForth — there is no compiler inside the box.
+
+
+
LithosAnanke
+
the microkernel
+
A bare-metal microkernel built around the Stadium — a single fabric where words, messages, blocks and VMs live side by side, all governed by one compudynamic engine.
+
+
+
The fleet
+
VMs that are born, not spawned
+
Hera births and governs the fleet. Artemis keeps the blocks. Console draws a vector framebuffer. Hermes, in the kernel, carries every message — and every message is checked against its ACL.
+
+
+
+
+
+
+
Phenomenon first
Observe the behaviour, then write the mathematics. Document before code.
+
Parity first
The same machine on every ISA, proven by reproducible dictionary hashes.
+
Identity on a key
Your certificate lives on a thumb drive. No key, no session.
+
Minimal by design
A small core of primitives; everything else composed in FORTH.
+
+
+
+
+
+
+
Research
+
James Law: K≡1.0
+
A conservation invariant that holds regardless of instruction set. Validated across 38,400+ runs in 128 configurations under QEMU on amd64, aarch64 and riscv64, and published on SSRN.
StarForth V4 is being brought up as a mesh of tiny stack-machine cores on FPGA — words as instructions, messaging in hardware, and the compudynamic engine steering what runs and when. Same machine, same parity, now in logic.
+
+
+
+
+
+
+
From the bridge
+
Built by one engineer, in the open.
+
StarshipOS is designed and built by Captain Bob — Robert Allan James — drawing on roughly fifty years of embedded-systems work. Development happens in Ashland, Ohio, and in public on starshipos-f18.org.
Milestones, releases and papers. Low volume. Unsubscribe anytime.
+
+
+
+
+
+
+
+
+{{/html}}
diff --git a/site/com/README.md b/site/com/README.md
new file mode 100644
index 00000000..782c042a
--- /dev/null
+++ b/site/com/README.md
@@ -0,0 +1,18 @@
+# site/com -- the starshipos-f18.com XWiki's pages
+
+The public face of StarshipOS, made from the "StarshipOS.com" design canvas (claude.ai), whose
+artboards are copied into `canvas/` as they are: Home (`Main.WebHome`), `Inquiries.WebHome`,
+`TryIt.WebHome`. `build.py` turns each into one `{{html}}` block (a page author with script rights)
+and says what changes on the way: the wiki's links and domains, the images as attachments
+(`badge.jpg`, `captain-bob.jpg`, web-size copies of the canvas's), the real console in Try it, the
+forms by e-mail. `install.sh` puts them on the wiki and checks a guest can read them:
+
+```
+site/com/build.py
+XWIKI_USER=rajames XWIKI_PASSWORD=... site/com/install.sh
+```
+
+Change the design on the canvas, copy the artboard into `canvas/`, and run both again.
+
+Installed 2026-11-07. Try it is on the wiki but not in the navigation (#117): its console,
+`try.starshipos-f18.com`, is not served yet (#115).
diff --git a/site/com/TryIt.WebHome.xwiki b/site/com/TryIt.WebHome.xwiki
new file mode 100644
index 00000000..c2da0a81
--- /dev/null
+++ b/site/com/TryIt.WebHome.xwiki
@@ -0,0 +1,104 @@
+{{html clean="false"}}
+
+
+
+
+
+
+
+
+
+
ok> try it
+
A StarshipOS machine of your own.
+
Not a recording, not a simulation of StarshipOS: the console below is a real machine, started just for you and already at its prompt. You are Zuse, the superuser — of a machine that exists only for your session. There is nothing to break, and nothing you do is kept.
+
+
+
+
+
+StarshipOS · amd64 · your session
+try.starshipos-f18.com
+
+
+
+
If the console does not connect, every machine is in use: try again in a few minutes.
+
+
+
+
+
Zuse
the superuser, of this machine only
+
amd64
LithosAnanke v2.1.0 · StarForth v4
+
30 min
then it is gone; reload for a new one
+
Offline
no network inside the machine
+
+
+
+
+
Things to try
+
StarshipOS speaks FORTH.
+
Type a line and press Enter. When the machine has done it, it answers ok.
+
+
+
You type
+
3 4 + .
+
It answers
+
7 ok
+
Numbers go on a stack; + adds the top two; . prints the result.
+
+
+
You type
+
: SQUARE DUP * ;
+
It answers
+
ok
+
You have just taught the machine a new word, SQUARE.
+
+
+
You type
+
7 SQUARE .
+
It answers
+
49 ok
+
…and used it, as if it had always been there.
+
+
+
+
+
+
+
A machine of your own
Resumed at its prompt from one that booted, passed its 538 power-on self-tests and logged Zuse in — so you never wait for a boot.
+
The latest green build
Always the most recent build that booted on amd64, aarch64 and riscv64 and passed every acceptance check.
+
A Zuse of its own
Zuse is whoever holds the identity drive. Here it is a demo Zuse minted for this page alone — not anyone's real identity.
+
Gone when you go
Close the page, or let 30 minutes pass, and the machine is stopped and discarded. The next visitor starts clean.
+
+
+
+
+
+
+
A small server
+
Emulated, so a little slower.
+
The demo runs in an emulator on a modest server: slower than StarshipOS on real hardware, and only a few machines at once. The real thing boots straight from firmware, with nothing beneath it.
+{{/html}}
diff --git a/site/com/badge.jpg b/site/com/badge.jpg
new file mode 100644
index 00000000..fe2b6bd1
Binary files /dev/null and b/site/com/badge.jpg differ
diff --git a/site/com/build.py b/site/com/build.py
new file mode 100755
index 00000000..30866304
--- /dev/null
+++ b/site/com/build.py
@@ -0,0 +1,92 @@
+#!/usr/bin/env python3
+"""build.py -- the starshipos-f18.com XWiki pages, made from the "StarshipOS.com" design canvas.
+
+ site/com/build.py canvas/{Main,Inquiries,TryIt}.dc.html -> {Main,Inquiries,TryIt}.WebHome.xwiki
+
+The canvas is the source: its artboards are copied into canvas/ as they are, and this turns each into
+one {{html}} block (which needs a page author with script rights). What changes on the way:
+
+ - the accent hole becomes its default colour, and the canvas's links become the wiki's pages
+ (Main.dc.html -> /bin/view/Main/, ...) and the real domains (starshipos.org -> starshipos-f18.org);
+ - the two images become attachments of Main.WebHome (badge.jpg, captain-bob.jpg -- web-size copies
+ of the canvas's uploads);
+ - Try it: the drawn console becomes the real one, an iframe of try.starshipos-f18.com;
+ - the forms, which have no server behind them, send by e-mail (mailto:);
+ - a link the canvas left as a placeholder ([SSRN PAPER URL]) points at the .org until it is given.
+
+install.sh puts the pages and the images on the wiki.
+"""
+import os
+import re
+
+ACCENT = "#F5891F"
+FONTS = ('\n'
+ '')
+ORG = "https://starshipos-f18.org/"
+PAGES = ["Main", "Inquiries", "TryIt"]
+IMAGES = {"/_blob/5b564d54d98e02ad600c913a9a1888f2": "badge.jpg",
+ "/_blob/5483451f292782a8b366e437181c4bcf": "captain-bob.jpg"}
+
+CONSOLE = '''
+
+StarshipOS · amd64 · your session
+try.starshipos-f18.com
+
+
+
+
If the console does not connect, every machine is in use: try again in a few minutes.
'''
+
+
+def body(src):
+ m = re.search(r"(.*)", src, re.S)
+ html = re.sub(r".*?", "", m.group(1), flags=re.S).strip()
+ html = html.replace("{{accent}}", ACCENT)
+ for p in PAGES:
+ html = html.replace('href="%s.dc.html"' % p, 'href="/bin/view/%s/"' % p)
+ html = html.replace('href="https://starshipos.org"', 'href="%s"' % ORG)
+ html = html.replace(">starshipos.org", ">starshipos-f18.org")
+ html = html.replace("on starshipos.org.", "on starshipos-f18.org.")
+ html = html.replace('href="[SSRN PAPER URL]"', 'href="%s"' % ORG)
+ for blob, name in IMAGES.items():
+ html = html.replace('src="%s"' % blob, 'src="/bin/download/Main/WebHome/%s"' % name)
+ html = html.replace("min-height: 100vh", "min-height: 0") # inside the wiki's page, not a screen
+ return html
+
+
+def try_it(html):
+ start = html.index('