branding: add hyperhive logo + show it in the README

Adds the hyperhive logo (amber-on-dark hexagonal hive) as repo assets
under branding/ — hyperhive.svg (primary, scalable, 5 KB) and
hyperhive.png (raster fallback). Displays the SVG centered at the top
of the README.

Closes #136
This commit is contained in:
iris 2026-05-21 00:37:45 +02:00
parent 305a32220b
commit 729306a357
3 changed files with 101 additions and 0 deletions

View file

@ -1,3 +1,7 @@
<p align="center">
<img src="branding/hyperhive.svg" alt="hyperhive" width="180">
</p>
# hyperhive # hyperhive
> a swarm of claude-code agents, each in its own nspawn cage, gossiping > a swarm of claude-code agents, each in its own nspawn cage, gossiping

BIN
branding/hyperhive.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

97
branding/hyperhive.svg Normal file
View file

@ -0,0 +1,97 @@
<svg width="300" height="300" viewBox="0 0 300 300" role="img" xmlns="http://www.w3.org/2000/svg">
<title>HyperHive</title>
<desc>HyperHive icon — hexagonal hive, amber on dark</desc>
<defs>
<clipPath id="clipH"><circle cx="150" cy="150" r="140"/></clipPath>
</defs>
<g clip-path="url(#clipH)">
<rect x="0" y="0" width="300" height="300" fill="#0a0600"/>
<g stroke="#ffb300" stroke-width="0.35" opacity="0.07">
<line x1="0" x2="300" y1="10" y2="10"/> <line x1="0" x2="300" y1="20" y2="20"/>
<line x1="0" x2="300" y1="30" y2="30"/> <line x1="0" x2="300" y1="40" y2="40"/>
<line x1="0" x2="300" y1="50" y2="50"/> <line x1="0" x2="300" y1="60" y2="60"/>
<line x1="0" x2="300" y1="70" y2="70"/> <line x1="0" x2="300" y1="80" y2="80"/>
<line x1="0" x2="300" y1="90" y2="90"/> <line x1="0" x2="300" y1="100" y2="100"/>
<line x1="0" x2="300" y1="110" y2="110"/> <line x1="0" x2="300" y1="120" y2="120"/>
<line x1="0" x2="300" y1="130" y2="130"/> <line x1="0" x2="300" y1="140" y2="140"/>
<line x1="0" x2="300" y1="150" y2="150"/> <line x1="0" x2="300" y1="160" y2="160"/>
<line x1="0" x2="300" y1="170" y2="170"/> <line x1="0" x2="300" y1="180" y2="180"/>
<line x1="0" x2="300" y1="190" y2="190"/> <line x1="0" x2="300" y1="200" y2="200"/>
<line x1="0" x2="300" y1="210" y2="210"/> <line x1="0" x2="300" y1="220" y2="220"/>
<line x1="0" x2="300" y1="230" y2="230"/> <line x1="0" x2="300" y1="240" y2="240"/>
<line x1="0" x2="300" y1="250" y2="250"/> <line x1="0" x2="300" y1="260" y2="260"/>
<line x1="0" x2="300" y1="270" y2="270"/> <line x1="0" x2="300" y1="280" y2="280"/>
</g>
<circle cx="150" cy="150" r="118" fill="none" stroke="#ffb300" stroke-width="1" opacity="0.4"/>
<circle cx="150" cy="150" r="104" fill="none" stroke="#ff8f00" stroke-width="0.5" opacity="0.25" stroke-dasharray="4 6"/>
<!-- RING 2 — 6 between-axis hexes, centered on (150,150) instead of (170,170) -->
<g fill="#0e0800" stroke="#ffb300" stroke-width="0.7" opacity="0.4">
<polygon points="254,105 241,127.5 215,127.5 202,105 215,82.5 241,82.5"/>
<polygon points="98,105 85,127.5 59,127.5 46,105 59,82.5 85,82.5"/>
<polygon points="176,60 163,82.5 137,82.5 124,60 137,37.5 163,37.5"/>
<polygon points="254,195 241,217.5 215,217.5 202,195 215,172.5 241,172.5"/>
<polygon points="98,195 85,217.5 59,217.5 46,195 59,172.5 85,172.5"/>
<polygon points="176,240 163,262.5 137,262.5 124,240 137,217.5 163,217.5"/>
</g>
<!-- RING 1 — 6 hexes -->
<g fill="#150c00" stroke="#ffb300" stroke-width="1.2" opacity="0.8">
<polygon points="228,150 215,172.5 189,172.5 176,150 189,127.5 215,127.5"/>
<polygon points="202,105 189,127.5 163,127.5 150,105 163,82.5 189,82.5"/>
<polygon points="150,105 137,127.5 111,127.5 98,105 111,82.5 137,82.5"/>
<polygon points="124,150 111,172.5 85,172.5 72,150 85,127.5 111,127.5"/>
<polygon points="150,195 137,217.5 111,217.5 98,195 111,172.5 137,172.5"/>
<polygon points="202,195 189,217.5 163,217.5 150,195 163,172.5 189,172.5"/>
</g>
<!-- CENTER hex -->
<polygon points="176,150 163,172.5 137,172.5 124,150 137,127.5 163,127.5"
fill="#1a0f00" stroke="#ffb300" stroke-width="1.8"/>
<!-- connections -->
<g stroke="#ffb300" stroke-width="1" opacity="0.6">
<line x1="176" y1="150" x2="202" y2="150"/>
<line x1="124" y1="150" x2="98" y2="150"/>
<line x1="163" y1="128" x2="176" y2="105"/>
<line x1="137" y1="128" x2="124" y2="105"/>
<line x1="163" y1="173" x2="176" y2="195"/>
<line x1="137" y1="173" x2="124" y2="195"/>
</g>
<!-- CENTER node -->
<circle cx="150" cy="150" r="10" fill="#ffb300" opacity="0.95"/>
<circle cx="150" cy="150" r="5" fill="#0a0600"/>
<!-- ring 1 nodes -->
<g fill="#ff8f00" opacity="0.9">
<circle cx="202" cy="150" r="6"/>
<circle cx="176" cy="105" r="6"/>
<circle cx="124" cy="105" r="6"/>
<circle cx="98" cy="150" r="6"/>
<circle cx="124" cy="195" r="6"/>
<circle cx="176" cy="195" r="6"/>
</g>
<g fill="#0a0600">
<circle cx="202" cy="150" r="2.5"/>
<circle cx="176" cy="105" r="2.5"/>
<circle cx="124" cy="105" r="2.5"/>
<circle cx="98" cy="150" r="2.5"/>
<circle cx="124" cy="195" r="2.5"/>
<circle cx="176" cy="195" r="2.5"/>
</g>
<rect x="0" y="143" width="300" height="2" fill="#ffb300" opacity="0.07"/>
</g>
<circle cx="150" cy="150" r="140" fill="none" stroke="#ffb300" stroke-width="2.5"/>
<circle cx="150" cy="150" r="145" fill="none" stroke="#ff8f00" stroke-width="0.5" opacity="0.4" stroke-dasharray="8 4"/>
<g stroke="#ffb300" stroke-width="1.5" fill="none" opacity="0.8">
<path d="M44,44 L20,44 L20,70"/>
<path d="M256,44 L280,44 L280,70"/>
<path d="M44,256 L20,256 L20,230"/>
<path d="M256,256 L280,256 L280,230"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB