Branding
Source of truth for SPACE OS visual identity. The runtime implementations live in space-os-aether-app — the desktop app's renderer holds the canonical paint code.
🚨 Naming rule —
SPACEis the token (the cryptocurrency).SPACE OSis everything else (the platform, the chain/network, the operating system, the brand). Never write "SPACE OS Token" or "the SPACE network". A balance is shown "in SPACE", a connection is "to the SPACE OS network". Each gets its own icon — see SPACE vs SPACE OS below.
Three things, three icon families
![]() SpaceMark [_]SPACE OS — the platform |
AetherMark The Aether app |
![]() SPACE token coin The SPACE cryptocurrency |
| Mark | Represents | When to use |
|---|---|---|
SpaceMark [_] |
SPACE OS — the platform/network/OS as a brand | Platform-level branding: marketing surfaces, doc footers, CLI splashes, infrastructure repos (fiat-service, app-api, space-router), chain selectors, network breadcrumbs |
| AetherMark | The Aether app as an OS-level product | App icon (taskbar, dock, alt-tab, system tray), browser-tab favicons, PWA install icon, mobile launcher, the agent's avatar |
| SPACE token coin | The SPACE token specifically — the cryptocurrency | Wallet rows, balances, treasury widgets, transfers, staking, anywhere a SPACE amount is being shown |
The brand violet #a855f7 ties all three together. Different shapes + glyphs let them coexist without confusion: brackets for the platform, ferrofluid blob for the app, star for the token.
SPACE vs SPACE OS — the distinction
The Web3 wallet UI exposes both at once: a SPACE OS chain header (the network identity), and a SPACE token row underneath (the balance). They must look different at a glance.
![]() SPACE OS the platform / chain / network violet rounded square + white [_]
|
![]() SPACE the token / cryptocurrency violet circle + white star |
Distinction by:
- Shape — rounded square (platform/app convention) vs circle (coin convention).
- Glyph —
[_]SpaceMark (platform identity) vs★(token identity). - Same brand violet
#a855f7— both are part of the same brand family.
Naming rules
| ✅ Correct | ❌ Avoid |
|---|---|
| "Your balance: 100 SPACE" | "Your balance: 100 SPACE OS" |
| "Connected to the SPACE OS network" | "Connected to the SPACE network" |
| "Stake SPACE to provide GPU compute on SPACE OS" | "Stake SPACE OS Token" |
| "Send SPACE to another wallet" | "Send the SPACE OS token" |
| "Built on SPACE OS" | "Built on SPACE" |
When to use which icon
- SPACE OS chain icon —
<ChainIcon chain="spaceos">, network selectors, "SPACE OS Portfolio" headers, anywhere the chain or platform itself is being referenced. - SPACE token icon —
<TokenIcon symbol="SPACE">, wallet rows, balance pills, treasury, swap UIs, transfer drawers — anywhere a SPACE amount is being shown.
Palette
Brand violet
The platform-and-token brand colour. Used by both the SPACE OS chain icon and the SPACE token coin (different shapes/glyphs distinguish them).
| Token | RGB | Hex | Swatch |
|---|---|---|---|
| Brand violet | 168, 85, 247 |
#a855f7 |
![]() |
Oil-slick palette (AetherMark)
The six hues are walked spatially by the AetherMark (outer → inner) and rotated temporally by the live procedural paint.
| Hue | RGB | Hex | Swatch |
|---|---|---|---|
| Gold | 212, 175, 55 |
#D4AF37 |
![]() |
| Copper | 200, 117, 51 |
#C87533 |
![]() |
| Magenta | 214, 92, 200 |
#D65CC8 |
![]() |
| Indigo | 91, 63, 184 |
#5B3FB8 |
![]() |
| Cyan | 68, 214, 232 |
#44D6E8 |
![]() |
| Lime | 166, 226, 102 |
#A6E266 |
![]() |
Defined once in paintSpectrumBlob (space-mark.ts); the icon generator reads the same constants so paint and bitmap stay in sync.
Aether moods
The AetherMark exposes six emotional states. Each shapes the paint loop's speed, wobble, saturation, brightness, and pulse rate.
| Mood | Speed | Wobble | Saturation | Brightness | Pulse |
|---|---|---|---|---|---|
| calm | 0.55 | 0.85 | 0.85 | 0.95 | 0.025 |
| thinking | 1.00 | 1.00 | 1.00 | 1.00 | 0.020 |
| excited | 1.85 | 1.55 | 1.10 | 1.15 | 0.060 |
| focused | 0.85 | 0.55 | 1.05 | 1.05 | 0.010 |
| sad | 0.40 | 0.70 | 0.30 | 0.75 | 0.030 |
| alert | 1.40 | 1.20 | 1.00 | 1.10 | 0.075 |
Defined in AETHER_MOODS in space-mark.ts. Set globally with setAetherMood(m), or per-instance via new AetherMark(el, { mood: "excited" }).
SpaceMark — the [_] resting glyph
The static export — for places that need a still image and can't run the procedural canvas (docs, wiki, slide decks).
![]() 64 px |
![]() 128 px |
![]() 256 px |
![]() 512 px |
Source: apps/desktop/assets/spacemark.svg. Solid fills, no gradients — same backend-portability constraint as the AetherMark icon.
SpaceMark animation library
The procedural mark can play any of these named animations. Set with new SpaceMark(el, { pinned: "<name>" }) or rotate through them with the default animated: true.
| Group | Animations |
|---|---|
| Space | stars, shootingStar, nebulaPulse, planetTransit, constellation |
| Network | nodePing, dataPacket, meshForming, signalPulse, wireguardLink, networkProbe |
| Thinking | thinkingDots, neuralSpark, cursorBlink |
| Life | heartbeat, breathing, wave |
| Geometry | squareDivide, innerRotate, singlePixel, flash |
| Glyph | underscore, underscoreBlink |
| Narrative | stickMan, cablePair (pairing splash), feedScroll, paperDrop |
| System | gears, globePulse, shieldPulse, webSearch |
| Aether | ferroFluid / aetherMark (alias), aetherDance (audio-reactive) |
SPACE OS chain icon
Inline UI variant of the SpaceMark for chain/network surfaces — wallet headers, network selectors, breadcrumb badges. Designed to read at 24 px alongside Ethereum, Polygon, etc., not to compete with them.
![]() 64 px |
![]() 128 px |
![]() 256 px |
![]() 512 px |
Anatomy
- Square: rounded violet
#a855f7, full bleed,rx=5(24-viewBox proportions). Rounded square shape echoes the AetherMark + SpaceMark icon backdrops, signalling "platform/app identity"; the circle silhouette is reserved for the SPACE token coin so the two never collide. - Glyph: white
[_]SpaceMark (brackets + underscore), stroke-weight 1.8 (round caps + joins) — readable at 24 px.
Source: apps/desktop/assets/spaceos-chain.svg.
Where it lives
- React component:
SpaceOSIconinsrc/components/icons/ChainIcons.tsx— inline JSX, no external file dependency. Used by<ChainIcon chain="spaceos">everywhere. - Standalone SVG:
apps/desktop/assets/spaceos-chain.svg— for surfaces outside React (slide decks, docs, marketing).
SPACE token icon
Tier-1 token-icon language: full-bleed colored coin, single bold white glyph, no card or backdrop chrome. Sits cleanly next to USDT (teal hex + T), USDC (blue circle + $), USDS (green circle + $) in wallet UIs without looking like an app launcher icon by mistake.
![]() 64 px |
![]() 128 px |
![]() 256 px |
![]() 512 px |
Anatomy
- Disc: solid SPACE violet
#a855f7, full bleed — viewBox edges = disc edges, exactly like USDC/USDT/USDS. - Glyph: five-point filled white star, outer radius 140 / inner radius 58 (fat-star ratio ~2.4:1) so the silhouette holds at 16/32 px wallet rows.
- No backdrop, no brackets, no shadow. The disc IS the icon; the glyph is the only contents.
The brackets that frame the canonical [_] SpaceMark are deliberately dropped in the token icon — they don't read at small sizes on a colored coin, and they would dilute the glyph's recognition relative to single-letter token marks (USDT's T, USDC's $). The brand connection lives in the violet, not in the punctuation; the SpaceMark brackets stay reserved for the SPACE OS chain icon (see above).
Source: apps/desktop/assets/spacemark-star.svg.
Where it lands
| Surface | File | Wired in |
|---|---|---|
| Web app token rows / wallet UI | space-os-app/public/icons/spaceos.png |
TOKEN_ICONS.SPACE in ChainIcons.tsx |
| Web app legacy / Aether default avatar | space-os-app/public/logo.png |
AetherLanding, AgentOnboarding defaults |
| Desktop renderer token list | apps/desktop/src/renderer/tokens/space.svg |
sits alongside eth.png, usdc.png, usd-s.svg, etc. |
When to use
- Yes: wallet rows, balance pills, treasury widgets, transfer/swap UIs, leaderboard tickers, marketplace listings — anywhere a balance figure or amount of SPACE is being displayed.
- No: chain headers, network selectors, breadcrumbs identifying the SPACE OS network → use the SPACE OS chain icon instead.
- No: anywhere "SPACE OS the platform" is being branded → use the
[_]SpaceMark. - No: app icon, OS-level identity, or favicon → use the AetherMark.
History
- v1: static photograph of a snowflake crystal — replaced because it didn't match the SpaceMark/AetherMark family at all.
- v2:
[★]glyph on a dark rounded "card" backdrop, mimicking the AetherMark icon's chrome — replaced because it read as an app launcher icon, not a token coin. - v3 (current): solid violet disc + bold white star, Tier-1 token language. Brackets dropped, full-bleed disc, single glyph.
AetherMark iconset (desktop / tray / window)
The desktop app ships a static AetherMark snapshot as its OS icon — same palette and lobe equations as the live mark, frozen at one canonical pose. This is the answer for any place an OS expects a square bitmap (taskbar, dock, alt-tab, system tray, Windows installer, etc.).
Iconset gallery — every shipped size
16 px |
32 px |
48 px |
64 px |
128 px |
256 px |
512 px |
|||
1024 px (full character) |
||||
Files
assets/icon.svg ← source of truth (generated)
assets/icon.png ← copy of icon-512.png, used at runtime
assets/icon-{16,32,48,64,128,256,512,1024}.png
assets/icon.ico ← multi-resolution Windows bundle
(sizes 16/24/32/48/64/128/256)
assets/spacemark.svg ← static SpaceMark [_] export
assets/spacemark-{64,128,256,512}.png
assets/spacemark-star.svg ← SPACE token icon (violet disc + star)
assets/spacemark-star-{64,128,256,512}.png
assets/spaceos-chain.svg ← SPACE OS chain icon (violet square + brackets)
assets/spaceos-chain-{64,128,256,512}.png
scripts/gen-aether-icon.mjs ← emits icon.svg
scripts/gen-icon.mjs ← rasterizes SVG → PNGs + .ico
Where each lands
| Surface | File | Wired in |
|---|---|---|
| System tray | icon-64.png |
main/index.ts (nativeImage.createFromPath) |
| Window icon | icon-512.png |
BrowserWindow icon |
| Linux deb / AppImage | icon-512.png |
package.json build.linux.icon |
| Windows NSIS | icon.ico |
package.json build.win.icon |
| macOS dmg | icon-1024.png |
package.json build.mac.icon (electron-builder generates .icns at packaging time) |
How to regenerate
One command from apps/desktop/:
npm run gen-aether-icon
That chain runs gen-aether-icon.mjs (writes icon.svg) then gen-icon.mjs (rasterizes all PNG sizes and bundles icon.ico).
Design choices baked into the generator
- Static snapshot at
PHASE = 1.7. - Spatial palette walk — outer = magenta, inner = copper.
- V-shaped alpha curve — outer ~0.85, middle ~0.45–0.55, inner ~0.85.
- Solid fills, no gradients/filters.
- Dark rounded backdrop
#0b0b14,rx=96.
Favicons
Browser-tab and PWA-launcher favicons. Generated from the AetherMark — when a user has the Aether app open in a browser tab, the favicon should match the tray/dock icon they use on desktop.
16 px (tab) |
32 px (retina tab) |
64 px (bookmark) |
| Repo | Path | Purpose |
|---|---|---|
space-os-app |
public/favicon.ico |
Web app browser tab |
website |
app/favicon.ico |
Marketing site browser tab |
space-os-app |
public/pwa/icon-{192,512,maskable}.svg |
PWA install icons |
Wired in the Next.js layout
space-os-app/src/app/layout.tsx declares explicit metadata.icons so the head emits proper <link rel="icon">, <link rel="shortcut icon">, and <link rel="apple-touch-icon"> tags rather than relying on implicit discovery.
Download
favicon.ico (multi-res) · 16 px PNG · 32 px PNG · 64 px PNG
In-app icon pack (built-in desktop apps)
The desktop app's window manager hosts a few first-party "OS-style" apps. Each has a 3D-rendered PNG icon used in the dock, taskbar strip, wallpaper desktop icons, and App Store tile.
App Store browseable app catalog |
Files cross-app file browser |
Notepad plain-text editor |
Calculator basic arithmetic |
TV YouTube embed surface |
Hyperworld spatial 3D world |
Research Lab knowledge & research tools |
Files: apps/desktop/src/renderer/assets/icons/3d/{app-store,calculator,files,hyperworld,notepad,research-lab,tv}.png. Wired in registry.ts.
Asset downloads
SpaceMark [_] (platform) |
SPACE OS chain icon (chain) | SPACE token (token) | AetherMark (app) | |
|---|---|---|---|---|
| Vector | spacemark.svg | spaceos-chain.svg | spacemark-star.svg | icon.svg |
| 64 px | PNG | PNG | PNG | PNG |
| 128 px | PNG | PNG | PNG | PNG |
| 256 px | PNG | PNG | PNG | PNG |
| 512 px | PNG | PNG | PNG | PNG |
| 1024 px | – | – | – | PNG |
| Favicon | – | – | – | favicon.ico |
Where things live
| Asset | Repo | Path |
|---|---|---|
| Procedural paint code (SpaceMark + AetherMark) | space-os-aether-app |
apps/desktop/src/renderer/brand/space-mark.ts |
| AetherMark icon SVG + PNGs + ICO | space-os-aether-app |
apps/desktop/assets/icon.{svg,png,ico} |
SpaceMark [_] static SVG + PNGs |
space-os-aether-app |
apps/desktop/assets/spacemark.{svg,*.png} |
| SPACE OS chain icon (square + brackets) | space-os-aether-app |
apps/desktop/assets/spaceos-chain.{svg,*.png} |
| SPACE token icon (disc + star) | space-os-aether-app |
apps/desktop/assets/spacemark-star.{svg,*.png} |
| In-app 3D icon pack | space-os-aether-app |
apps/desktop/src/renderer/assets/icons/3d/ |
| Desktop renderer token icons | space-os-aether-app |
apps/desktop/src/renderer/tokens/ (incl. space.svg) |
| Inline React chain icons | space-os-app |
src/components/icons/ChainIcons.tsx |
| Web app favicon + token logo | space-os-app |
public/{favicon.ico,logo.png,apple-touch-icon.png,icons/spaceos.png} |
| Marketing site favicon | website |
app/favicon.ico |
| PWA icons | space-os-app |
public/pwa/icon-{192,512,maskable}.svg |
If you need a brand asset for a non-aether-app surface, pull the PNGs at the size you need from the assets/ directory rather than recreating the mark by hand. Re-rendering by eye drifts; the generators are reproducible.


















