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
29 lines
1.5 KiB
XML
29 lines
1.5 KiB
XML
<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>
|