"A jack of all trades is a master of none, but oftentimes better than a master of one."
Sue, the Singular Unified Engine, is one lightweight, endlessly expandable creative environment. Its tools view and touch up pictures and convert any file into another kind; its studios are Sue Paint for illustration, comics and animation and Sue Writer for writing and publishing, and later a DAW, video editor, CAD/3D modeler, IDE or game engine.
Sue does this without a pile of separate apps or an N×N grid of file converters. Every tool works on the same data in one shared, generation-indexed Arena. A picture painted in Sue Paint is the very picture a chapter in Sue Writer shows; putting something on a timeline attaches a new projection to the data that is already there. Nothing is copied or converted.
Sue is made of the eleven crates below and the sue executable. It opens a native GPU window drawn with egui in a pure monochrome
theme (black to white, nothing else), straight onto the Hub:
- The Hub: a full page with a box for every studio (Sue Paint, Sue Writer)
and every tool (the Image Viewer, the Converter). A click opens one. The pin
at each box's bottom right makes Sue open straight into it at launch, one
pin at a time (
launchpad.pinnedin the rice, so it shows in Settings). - The top bar: the Sue button sits once in the top left corner, followed by the open studio's or tool's own menus. It opens the Sue menu: the Hub, every studio and tool, New, Open File, projects, Send To (the thing you work on, into another studio or tool by its id), the pin, the command palette and Settings.
- Sue Paint: a painting studio with the usual menus (File, Edit, Story, Animation, Layer, Select, View, Filter, Window, Help), a command bar, tools and sub tools (pens, pencils, brushes, airbrushes, erasers, fill, gradient, figures, selections, eyedropper, hand, zoom, move layer) with pen pressure and stabilization, a color wheel and sets, canvas tabs with a turnable view, a navigator, and layers with 26 blend modes, clipping and locks. Its page comes in over the Hub and its palettes slide in from the edges.
- Sue Writer: pages, styles, a binder, a corkboard, an outliner, composition mode and compiling to PDF, Word, OpenDocument, EPUB and more.
- The Image Viewer and the Converter: tools with pages of their own, like the studios. One shows a picture large with quick fixes and saving as any picture type; the other turns pictures, sounds, text and tables into other kinds of files on a background thread.
- The command palette:
Tabor/for a fuzzy search over every action and template. - Settings: a floating window (the Sue menu or
Ctrl+,) with nine categories, a filter box and a live control for every rice parameter.
Every text field selects with the mouse, double-clicks words, copies, cuts and
pastes, and Ctrl+Z and Ctrl+Y undo through the one global undo tree. Every
file Sue asks for goes through the system's own open, save and folder dialogs.
Drop any file on the window and it opens in the studio or tool that takes it.
Ctrl+S saves everything as a .sue project; opening a project brings it
back.
Under the shell sits the backbone every future feature will share
(HUMANZ.md §1): stable entity ids, typed and ordered relations, open and
versioned component types that survive round trips through builds that do not
know them, one value, unit, color and time vocabulary, generic undoable edits,
the .sue container, one registry each for file formats and operators,
presets, a background job pool, and shared data models for rich text, tables,
animation curves, timelines, note events, node graphs, geometry and page
layout.
The large studios (DAW, video, 3D and CAD, IDE, the Noelle game engine) and
the AI model runtimes come in later releases. HUMANZ.md §7 lists, part by
part, what is implemented today and what is only specified, and §8 maps every
feature Sue may grow into onto the backbone.
| Crate | Role | Key types |
|---|---|---|
sue-core |
The backbone: arena, stable ids, entities, open components, relations, values, units, color, time, undo tree, .sue file, format and operator registries, presets, jobs |
Arena, Entity, EntityId, ComponentRegistry, RelationStore, Value, Quantity, Color, Time, UndoStack, SueFile, FormatRegistry, OperatorRegistry, JobPool |
sue-model |
Shared data models every feature can read | TextMarks, Table, Animation, Sequence, Notes, NodeGraph, Geometry, Transform, PageLayout, picture, BlendMode, Encoded |
sue-platform |
The only place OS-specific code may live: hosts, the egui window and frame pacing, GPU choice, painting, audio output, clipboard, dialogs | PlatformHost, DesktopHost, run_desktop, FramePacing, EguiPainter, TextureUpload, AudioOutput |
sue-rice |
.suerice parser, Settings descriptors, monochrome presets, migration, hardware profiles |
RiceSchema, RiceParameter, SetRiceValues, ThemePreset, migrate, HardwareProfile |
sue-io |
Magic-byte sniffer, JPEG XL, PNG, JPEG and audio codecs, every format handler, ingest, tile cache, byte map | sniff_stream, formats, ingest_bytes, NativeJxlPipeline, decode_audio, encode_jpeg, TileCache |
sue-pkg |
Content-addressed packages, Ed25519 trust, resolver, atomic generations | PackageManifest, ContentHash, TrustStore, PackageIndex, resolve, AtomicUpdater |
sue-ai |
Offline, zero-copy AI substrate | LocalModelRegistry, ComputeBackend, ZeroCopyTensorTask |
sue-wm |
The shell: the Hub with its pins, the top bar with the Sue button and menus, studios and tools, palette, springs, theme | SueApplet, Launchpad, Shell, MenuBar, SpringDamper, Typing, Transport |
sue-paint |
Sue Paint: the painting studio, its brush engine, compositing, selections, fills and filters | SuePaint, Stroke, Compositor, Selection, Filter |
sue-type |
Typography for every studio that sets text: paragraph styles, the rich text editor, page layout and typesetting | Editor, StyleSheet, PageSetup |
sue-writer |
Sue Writer: the writing and publishing studio | SueWriter |
bins/sue |
The executable: runtime, built-in applets, self-check, snapshots | Engine, Runtime |
bins/sue ──► every crate below + egui
sue-paint ──► sue-wm, sue-io, sue-model, sue-rice, sue-platform, sue-core + egui
sue-wm ──► sue-rice, sue-platform, sue-core + egui
sue-ai ──► sue-platform, sue-core
sue-rice ──► sue-platform, sue-core
sue-io ──► sue-model, sue-core + jxl-oxide, zune-jpegxl, zune-png, zune-jpeg, jpeg-encoder, symphonia, image, flacenc
sue-model ──► sue-core
sue-pkg ──► sha2, ed25519-dalek, semver (no engine crates)
sue-core ──► nothing (leaf)
sue-platform ──► winit, wgpu, egui, egui-winit, egui-wgpu, arboard, pollster, cpal, audio_thread_priority, rfd, open (no engine crates)
Every release has a package for
each system. On Windows the -setup.exe is the easiest (the .msi is the
same installer for managed PCs, and the -portable.zip runs from any
folder), or install with Scoop:
scoop install https://github.com/MagiGun/sue/releases/latest/download/sue.jsonSue is not code-signed yet, so Windows may say "Windows protected your PC" or
"Unknown publisher" for a download. Choose More info, then Run
anyway. Before extracting the portable zip, right-click it, choose
Properties and tick Unblock, or Windows asks again for every program
inside. Scoop installs without the warning, and scoop update sue keeps Sue
current.
cargo run -p suecargo run -p sue -- --self-checkcargo run -p sue -- --snapshot target/snapshotscargo test --workspacecargo clippy --workspace --all-targets -- -D warningscargo run -p sue opens the window, titled Sue. It needs a graphics driver
with Vulkan, DirectX 12, Metal or OpenGL ES; playing audio needs an output
device. Your settings live in default.suerice in the rice folder of your
config directory (%APPDATA%\Sue on Windows, ~/Library/Application Support/Sue on macOS, ~/.config/sue on Linux). The first launch creates it as
a copy of the shipped defaults. A file from an older release, or one with any
color that is not a gray, is migrated on the next start: Sue keeps the values
you changed (except tinted colors) and saves the old file beside it as
default.suerice.v4.bak (or .v1.bak to .v3.bak).
--self-check boots every subsystem headlessly and prints a diagnostics log:
the Arena, the rice introspection, the sniffer, the package manager, the AI
registry and the shell working together through real egui frames (Sue opening
on the Hub, a click on a pin with Ctrl+Z and Ctrl+Y, a click on a box that
glides Sue Paint in (and snaps on legacy hardware), the Sue button's menu, a
picture opened in the Image Viewer and sent to the Converter, the palette and
Settings, then 0 FPS), the studios (a painting and a novel made, undone,
redone, saved and exported), and the backbone (the project saved and opened
again, pictures and tables through the format registry, an operator run with
a preset and undone, a background job). When a GPU is available it also
renders a frame and checks that not one pixel is tinted. The process exits
non-zero if any check fails. --snapshot <dir> renders the main scenes into
PNG files in <dir>, from a fresh temporary profile: the Hub and a pin, the
Sue menu, the palette, Settings, the Image Viewer, the Converter, Sue Paint
and its menus and dialogs, Sue Writer's views, and the Hub and Sue Paint on a
phone and a tablet.
- Website: https://magigun.github.io/sue/
- Discord: https://discord.gg/h4Hp2bKrHd, for questions, ideas and showing what you made
- Downloads: https://github.com/MagiGun/sue/releases
The website lives on the gh-pages branch, and GitHub Pages publishes it
again on every push there.
| File | For whom |
|---|---|
HUMANS.md |
Everyday users and creators: what Sue is and how the screen works, in plain English |
HUMANZ.md |
Systems engineers: the full architectural specification |
CONTRIBUTING.md |
New contributors: setting up, where a change goes, the checks to run, and how AI assistants find the rules |
AGENTS.md |
Contributors and AI agents: the backbone rules (they bind only the shared foundations) |
CLAUDE.md |
The same rules, mirrored for Claude-based agents |
SECURITY.md |
Reporting a security problem privately |
Agents commit only when asked and never push unless asked (rule 8 in AGENTS.md).
Sue is under the Sayn License (LICENSE). It is the MIT
License with one more condition, so please read it before you use Sue:
- Keep the copyright notice and the license text in every copy or substantial portion of Sue, as with MIT.
- Any distribution, modification or project that uses Sue must include
the exact string
Sayn was herein at least one file. A line in your README or your own license file is enough.
Contributions to this repository are made under the same license.
Sue is built on open source libraries, each under its own license
(deny.toml lists the ones allowed). This software is based in part on
the work of the Independent JPEG Group.