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.
개발 도구Rust · JavaScriptGitHub @jbrownson온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기projectional graph editor
저장소 README에서 가져옴
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 ZulipREADME 전문 보기 ↗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.