gfx: a new mark -- Shift for the OS, Uberblock for SchFS, Guru for the crash
The old logo was a thin monoline wordmark in a ring, with a grey gradient. The
kernel draws include/logo.h as a 128x128 four-bit coverage mask, so hairlines at
that size go ragged, the ring spent most of the area on nothing, and at small
sizes the S read as a 5.
Three marks, because each depicts the thing it belongs to and so they stop
competing:
Shift three slabs, displaced. The layer diagram in
docs/architecture/README.md as a solid object, and the kernel's
name as a shape. Dimensional rather than flat -- the tradition
Paul Rand's NeXT cube belongs to, which is what the architecture
already claims as its model.
Uberblock the SchFS ring: twelve slots, one of them newest. Twelve so the
slots divide 360 exactly; an arbitrary count leaves a part slot
crammed against its neighbour where the ring closes. The newest
is marked by REACHING FURTHER OUT as well as by colour, because
colour is exactly what the coverage mask discards.
Guru the PSOGM face, drawn for reference. Not wired in: panic.c argues
for the ":(" on the grounds that it is "legible as a mood without
being a picture of anything", and Guru spends that. Worth deciding
on purpose.
mklogo.py reads ink as (255 - luminance) * alpha, so tones survive as *coverage*
rather than being flattened -- which means the old grey gradient was not
discarded, it was turned into partial transparency. It also inverts: darkest is
most ink, which the kernel draws brightest. The mask source is therefore a
separate greyscale file with the top slab darkest, or the object would be lit
from below. Two files sharing one geometry is a drift hazard and the desc in
both says so.
The splash gets it for free: ui_logo() shades per row with metal() and the
mask's own tones reinforce that gradient rather than fighting it, so the slabs
come out looking machined.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VQ7Qx8E1q1M1bbCq8QLHS2
This commit is contained in:
parent
c362e308d0
commit
e80f7b287b
7 changed files with 589 additions and 477 deletions
44
Assets/SchFS Uberblock.svg
Normal file
44
Assets/SchFS Uberblock.svg
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200">
|
||||
<title>SchFS — Uberblock</title>
|
||||
<desc>The uberblock ring: slots written round-robin, one of them newest.
|
||||
Mount takes the highest-numbered slot that validates, which is the whole
|
||||
consistency argument for the format.
|
||||
|
||||
Every slot is an explicit annular sector. An earlier version drew them with
|
||||
stroke-dasharray on a circle, which is shorter to write and wrong in two ways:
|
||||
a dash centred on the path start straddles the closure and renders as TWO
|
||||
pieces with a seam between them, and the normal slot underneath the marked one
|
||||
still drew, showing through. Neither can happen here -- the marked slot is one
|
||||
shape and the slot it replaces is simply not emitted.
|
||||
|
||||
12 slots at 20 degrees of ink and 10 of gap, which closes at 360 exactly. The
|
||||
marked slot is index 1, counting clockwise from the top.
|
||||
|
||||
It is marked twice over: it carries the accent, the same colour as the root at
|
||||
the centre, and it reaches outward past the ring while sharing the inner edge
|
||||
with every other slot. The colour is the reading on screen; the size is what
|
||||
survives include/logo.h, which is a single coverage channel and keeps no
|
||||
colour at all.
|
||||
|
||||
Stands alone, with no reference to SchOS, as projects/schfs-linux/README.md
|
||||
requires.</desc>
|
||||
|
||||
<g fill="#3C2E85">
|
||||
<path d="M85.93 20.23 A81.00 81.00 0 0 1 114.07 20.23 L110.25 41.90 A59.00 59.00 0 0 0 89.75 41.90 Z"/>
|
||||
<path d="M162.05 47.93 A81.00 81.00 0 0 1 176.12 72.30 L155.44 79.82 A59.00 59.00 0 0 0 145.20 62.08 Z"/>
|
||||
<path d="M179.77 85.93 A81.00 81.00 0 0 1 179.77 114.07 L158.10 110.25 A59.00 59.00 0 0 0 158.10 89.75 Z"/>
|
||||
<path d="M176.12 127.70 A81.00 81.00 0 0 1 162.05 152.07 L145.20 137.92 A59.00 59.00 0 0 0 155.44 120.18 Z"/>
|
||||
<path d="M152.07 162.05 A81.00 81.00 0 0 1 127.70 176.12 L120.18 155.44 A59.00 59.00 0 0 0 137.92 145.20 Z"/>
|
||||
<path d="M114.07 179.77 A81.00 81.00 0 0 1 85.93 179.77 L89.75 158.10 A59.00 59.00 0 0 0 110.25 158.10 Z"/>
|
||||
<path d="M72.30 176.12 A81.00 81.00 0 0 1 47.93 162.05 L62.08 145.20 A59.00 59.00 0 0 0 79.82 155.44 Z"/>
|
||||
<path d="M37.95 152.07 A81.00 81.00 0 0 1 23.88 127.70 L44.56 120.18 A59.00 59.00 0 0 0 54.80 137.92 Z"/>
|
||||
<path d="M20.23 114.07 A81.00 81.00 0 0 1 20.23 85.93 L41.90 89.75 A59.00 59.00 0 0 0 41.90 110.25 Z"/>
|
||||
<path d="M23.88 72.30 A81.00 81.00 0 0 1 37.95 47.93 L54.80 62.08 A59.00 59.00 0 0 0 44.56 79.82 Z"/>
|
||||
<path d="M47.93 37.95 A81.00 81.00 0 0 1 72.30 23.88 L79.82 44.56 A59.00 59.00 0 0 0 62.08 54.80 Z"/>
|
||||
</g>
|
||||
|
||||
<g fill="#7C5CFF">
|
||||
<path d="M132.15 11.67 A94.00 94.00 0 0 1 160.42 27.99 L137.92 54.80 A59.00 59.00 0 0 0 120.18 44.56 Z"/>
|
||||
<circle cx="100" cy="100" r="20"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
12
Assets/SchOS Guru.svg
Normal file
12
Assets/SchOS Guru.svg
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200">
|
||||
<title>Guru — the PSOGM face</title>
|
||||
<desc>The crash-screen face. Chamfered corners quote the old SchOS letterforms.
|
||||
Drawn here for reference only: kernel/core/panic.c builds it from primitives
|
||||
rather than from a bitmap, so it scales with the display and costs nothing in
|
||||
the kernel image.</desc>
|
||||
|
||||
<path fill="#7C5CFF" d="M58 24 L142 24 L176 58 L176 142 L142 176 L58 176 L24 142 L24 58 Z"/>
|
||||
<path fill="#2B0F52" d="M74 82 h16 v22 h-16 Z"/>
|
||||
<path fill="#2B0F52" d="M110 82 h16 v22 h-16 Z"/>
|
||||
<path fill="#2B0F52" d="M72 128 h56 v11 h-56 Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 655 B |
BIN
Assets/SchOS Shift Mask.png
Normal file
BIN
Assets/SchOS Shift Mask.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.5 KiB |
29
Assets/SchOS Shift Mask.svg
Normal file
29
Assets/SchOS Shift Mask.svg
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200">
|
||||
<title>SchOS — Shift, as an ink mask</title>
|
||||
<desc>SAME GEOMETRY AS "SchOS Shift.svg". Only the fills differ, and they are
|
||||
greys because they are not colours: tools/python/mklogo.py reads ink as
|
||||
(255 - luminance) * alpha, so what is stored is coverage. The kernel then
|
||||
composites that coverage in whatever include/theme.h says the accent is.
|
||||
|
||||
The greys run DARK AT THE TOP because the relationship inverts: darkest here
|
||||
is most ink, which the kernel draws brightest. Copying the violet fills from
|
||||
the colour mark would light the object from below.
|
||||
|
||||
Two files with one geometry is a thing that can drift. If either is edited,
|
||||
edit both -- or replace this pair with one file and regenerate the other.</desc>
|
||||
|
||||
<!-- bottom slab: least ink, so the kernel draws it dimmest -->
|
||||
<path fill="#6E6E6E" d="M54 126 L158 126 L128 156 L24 156 Z"/>
|
||||
<path fill="#888888" d="M24 156 L128 156 L128 167 L24 167 Z"/>
|
||||
<path fill="#949494" d="M158 126 L158 137 L128 167 L128 156 Z"/>
|
||||
|
||||
<!-- middle -->
|
||||
<path fill="#3A3A3A" d="M72 84 L176 84 L146 114 L42 114 Z"/>
|
||||
<path fill="#5C5C5C" d="M42 114 L146 114 L146 125 L42 125 Z"/>
|
||||
<path fill="#6A6A6A" d="M176 84 L176 95 L146 125 L146 114 Z"/>
|
||||
|
||||
<!-- top slab: most ink, so the kernel draws it brightest -->
|
||||
<path fill="#0B0B0B" d="M90 42 L194 42 L164 72 L60 72 Z"/>
|
||||
<path fill="#2A2A2A" d="M60 72 L164 72 L164 83 L60 83 Z"/>
|
||||
<path fill="#3A3A3A" d="M194 42 L194 53 L164 83 L164 72 Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
27
Assets/SchOS Shift.svg
Normal file
27
Assets/SchOS Shift.svg
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200">
|
||||
<title>SchOS — Shift</title>
|
||||
<desc>Three slabs, displaced. The layer diagram in docs/architecture/README.md
|
||||
as a solid object, and the kernel's name (SchIFT) as a shape.
|
||||
|
||||
Each slab shows three faces: the top, the front edge under its lower side, and
|
||||
the right-end wall under its right diagonal. The right wall is not optional --
|
||||
without it the slab has no thickness where it is widest, and the corner reads
|
||||
as a hole rather than an edge.
|
||||
|
||||
Geometry is shared with "SchOS Shift Mask.svg"; see that file.</desc>
|
||||
|
||||
<!-- bottom slab -->
|
||||
<path fill="#3C2E85" d="M54 126 L158 126 L128 156 L24 156 Z"/>
|
||||
<path fill="#31256E" d="M24 156 L128 156 L128 167 L24 167 Z"/>
|
||||
<path fill="#291F5C" d="M158 126 L158 137 L128 167 L128 156 Z"/>
|
||||
|
||||
<!-- middle slab -->
|
||||
<path fill="#5B44C4" d="M72 84 L176 84 L146 114 L42 114 Z"/>
|
||||
<path fill="#4B37A6" d="M42 114 L146 114 L146 125 L42 125 Z"/>
|
||||
<path fill="#3F2D8C" d="M176 84 L176 95 L146 125 L146 114 Z"/>
|
||||
|
||||
<!-- top slab -->
|
||||
<path fill="#7C5CFF" d="M90 42 L194 42 L164 72 L60 72 Z"/>
|
||||
<path fill="#6949E0" d="M60 72 L164 72 L164 83 L60 83 Z"/>
|
||||
<path fill="#5B3FC9" d="M194 42 L194 53 L164 83 L164 72 Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
Loading…
Reference in a new issue