Active development · testnet
Back to Wiki

Wiki · Branding

Brand identity

Source of truth for SPACE OS visual identity. Three icon families, the naming rule, brand violet, the oil-slick palette, mood states, and where every asset lives.

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 ruleSPACE is the token (the cryptocurrency). SPACE OS is 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
SpaceMark [_]
SPACE OS — the platform
AetherMark
AetherMark
The Aether app
SPACE token
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 chain icon
SPACE OS
the platform / chain / network
violet rounded square + white [_]
SPACE token icon
SPACE
the token / cryptocurrency
violet circle + white star

Distinction by:

  1. Shape — rounded square (platform/app convention) vs circle (coin convention).
  2. Glyph[_] SpaceMark (platform identity) vs (token identity).
  3. 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
64 px
128 px
128 px
256 px
256 px
512 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
64 px
128 px
128 px
256 px
256 px
512 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: SpaceOSIcon in src/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
64 px
128 px
128 px
256 px
256 px
512 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.).

16
16 px
32
32 px
48
48 px
64
64 px
128
128 px
256
256 px
512
512 px
1024
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
16 px (tab)
32 px
32 px (retina tab)
64 px
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
App Store
browseable app catalog
Files
Files
cross-app file browser
Notepad
Notepad
plain-text editor
Calculator
Calculator
basic arithmetic
TV
TV
YouTube embed surface
Hyperworld
Hyperworld
spatial 3D world
Research Lab
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.