AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
A pre-alpha programming environment where everything you see, including the code, is a projection of one graph. Take a live program apart in your browser.
Developer toolsRust · JavaScriptGitHub @jbrownsonOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
projectional graph editor
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Excel meets JSON, but a graph, and it's projected. Progred is a pre-alpha
programming environment. Your program is a document, and everything you see,
including the code, is a projection of it drawn by some library. Working in it
feels more like a spreadsheet than a text file: change a value, and whatever
depends on it updates. Progred is a minimal prototype that demonstrates these
ideas, not a finished product.
It's public early to get feedback: share on Zulip what clicks, what
doesn't, and where you get lost.
Try it in your browser at prog.red · Chat about it on ZulipRead the full README ↗Excel meets JSON, but a graph, and it's projected. Progred is a pre-alpha programming environment. Your program is a document, and everything you see, including the code, is a projection of it drawn by some library. Working in it feels more like a spreadsheet than a text file: change a value, and whatever depends on it updates. Progred is a minimal prototype that demonstrates these ideas, not a finished product.
It's public early to get feedback: share on Zulip what clicks, what doesn't, and where you get lost.
Try it in your browser at prog.red · Chat about it on Zulip
Like a JSON object, a record maps keys to values. But a key isn't a string: it's an identity with a name attached as a label, so renaming a key never breaks anything that uses it. A value can also live in a cell, which has its own identity, so any number of places can point to it; that's what makes a document a graph. There are no built-in strings or numbers either, just records, lists, blobs of raw bytes, and cells. Libraries decide what data means and how it's drawn, so one document can be edited as code, editable numbers, color pickers, drawings, or 3D geometry, with no canonical source text to keep in sync.
The aim is an Inventing on Principle-style loop: change the program, see the result, and work directly with both. CAD/CAM is the demanding example it's being pushed on right now, not a limit on what it's for.
The CAM prototype during a tilted cutting pass, after the progressive implicit renderer has finished its final refinement.
A recreation of the tree demo from Bret Victor's Inventing on Principle. The original demo and the inspiration for this live-editing loop are his. Both screenshots are headless editor captures, without operating-system window chrome.
This is a pre-alpha prototype, not a finished CAD package. The editor, language, and document conventions are evolving together. CAM currently means toolpath generation and stock-removal visualization—not machine-ready G-code, verified clearance, or a safe machining plan.
macOS is the primary development platform, and the only one tested recently. There are also Linux and browser hosts. They do not yet have feature or performance parity.
and, or, not, or if, comparisons stop at <
and ==, and text has no operations.Install stable Rust through rustup and Apple's command-line developer tools
(xcode-select --install), then:
git clone https://github.com/jbrownson/progred.git
cd progred
make fetch
make run
The fetch step downloads the locked dependencies into an isolated Cargo home.
make run builds an optimized executable, packages and ad-hoc signs a macOS
App Sandbox bundle, and launches it. No paid Apple developer account is needed
for this local desktop build.
Use the supplied build commands rather than ordinary cargo build or
cargo run. Cargo dependencies can execute code during compilation; this
repository deliberately blocks accidental unsandboxed builds. See
build security for the boundary and dependency-update
workflow.
For repeated editing and testing, use make dev. Ctrl+C rebuilds and restarts;
quitting the app also restarts it. Ctrl+\ ends the session. A failed build waits
for another Ctrl+C. Restarting this development loop discards unsaved changes.
Use the Examples menu to open a fresh example. On native macOS its shortcuts are Command+1…5; the drawn menu on other hosts uses Ctrl+1…5, and a tap of Alt or F10 opens it from the keyboard.
| Start with | Shortcut | What to try |
|---|---|---|
| Inventing on Principle Tree | 1 | Change a number and watch the drawing update |
| Implicit CAD Shapes | 2 | Orbit the shapes and edit their parameters, including the cube |
| CAM Toolpaths | 3 | Move the slider to inspect cuts into the stock |
| Grap Language | 4 | Explore the data model and language constructs |
| Document Libraries | 5 | See fractions and angle dials drawn by projections written in the document |
0x…. The Plain view shows
the same structure with names, text and numbers readable.Examples replace the current document after the desktop's unsaved-changes confirmation. New Document does the same; New Window opens another window. These replace-in-place shortcuts are development conveniences.
See the example guide for the five menu examples, rendering options, and the geometry behind them. Heavy CAM views are best tried natively; high-quality implicit refinement can take time and still has rendering artifacts.
To build the browser version, set up the pinned nightly toolchain described in
web/README.md. On Linux that rustup lives in the home
directory and can sit beside the distribution's Rust package. Then run:
make run-web
It builds any editor changes, then serves http://127.0.0.1:8081/editor/ on
this machine only; the server does not listen on other network interfaces.
On Linux, make run builds under bubblewrap, a sandbox like the macOS one, then
runs the app outside it. make install-linux installs it as a desktop
application.
The platform notes list the runtime libraries it needs and
cover the other ports.
The design favors small constructs and reusable combinators: a composition should remain an ordinary input to further composition. Native implementations can lower those abstractions without changing the data or language semantics.
The checked-in .gid files use a temporary text bridge for Git, debugging, and
tooling. The logical data model is already structural; its native binary storage
format is future work. See GID and the text bridge.
gid/ — values, cells, documents, and positionsgrap/ — evaluatorincremental/ — dependency graph and background computationsvolume/ — Fidget shapes meshed for display, built optimizedcam/ — cutters, toolpaths and stock as Fidget fields, built
optimizedprogred/ — editor application; libraries and projections live in
progred/src/libraries/, layout in
progred/src/display/ui/ — Puri, reusable widgets, measurement, and drawing backendsexamples/ — bundled documentsdocs/ — current references, deferred work, and historyQuestions, ideas, and criticism are welcome on the Progred Zulip.
make check
make test
Start with the motivation, then the documentation index. More focused references cover the editor model, Grap and projections, Puri, incremental work, and toolpaths. Review the release checklist before distributing builds.
Earlier TypeScript, Swift, egui, Haskell, and nested Linebender prototypes are
preserved at archive/pre-root-promotion; archive/multi-prototype retains an
earlier milestone. Their design notes are in history.
Progred is licensed under the MIT license.
Some files keep their own licenses: the vendored Fidget crates and the patches
against them are MPL-2.0, the Noto Sans fonts use the
SIL Open Font License, and the website's GitHub and
Zulip icons carry their notices in website/public/. reference/iop-tree.js
transcribes the code shown in Bret Victor's Inventing on Principle talk; it's
kept for reference and isn't covered by this license.