Skip to content
MagiGunPublic

About

Sue, the Singular Unified Engine: one creative environment for painting, comics, animation, writing, sound and more.

Resources

Code of conduct

Contributing

Security policy

Stars

14 stars

Watchers

2 watching

Forks

Latest commit

 

History

287 Commits

Folders and files

Repository files navigation

Sue

"A jack of all trades is a master of none, but oftentimes better than a master of one."

Latest release Rust MSRV Platforms Kernel Images AI unsafe

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.

Where things stand

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.pinned in 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: Tab or / 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 map

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)

Install

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.json

Sue 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.

Quick start

cargo run -p sue
cargo run -p sue -- --self-check
cargo run -p sue -- --snapshot target/snapshots
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings

cargo 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.

Community

The website lives on the gh-pages branch, and GitHub Pages publishes it again on every push there.

Read next

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).

License

Sue is under the Sayn License (LICENSE). It is the MIT License with one more condition, so please read it before you use Sue:

  1. Keep the copyright notice and the license text in every copy or substantial portion of Sue, as with MIT.
  2. Any distribution, modification or project that uses Sue must include the exact string Sayn was here in 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.

About

Sue, the Singular Unified Engine: one creative environment for painting, comics, animation, writing, sound and more.

Resources

Code of conduct

Contributing

Security policy

Stars

14 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages