Doop
Doop: 오픈소스 멀티플레이어 디자인 캔버스 및 AI 에이전트용 MCP
Ringcode는 브라우저에서 Rust와 WebAssembly로 동작하며, 동심원 형태의 짧은 단어를 스캔·생성합니다
Scan and create ringcodes: short words written as concentric gapped rings, like the Jane Street logo (JSC). Runs in your browser with Rust and WebAssembly.
디자인GitHub @kraphtuos온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Short words written as concentric gapped rings, scanned from a camera like a QR code. The Jane Street logo is the three-ring code for JSC (Jane Street Capital).
Everything runs in the browser: the detector is Rust compiled to WebAssembly, and images never leave the device.
A at 12 o'clock, then clockwise every 360°/26 ≈ 13.85°.Because the inner/outer ratio is fixed, no subset of a code's rings is itself a valid code, so a ring that goes undetected makes a scan fail instead of reading a shorter word.
Like a clock face, a code only reads correctly if you know which way is up. The
scanner assumes upright and tolerates half a slot (about ±6.9°) of error. Because
a code's gaps always sit a whole number of slots apart, rotating a code only
shifts every letter by the same amount, so any rotation reads as one of 26 words.
The app lets you fix the orientation by hand: step the top round one slot at a
time (buttons, [ ] or arrow keys), or pick from the list of all 26 readings.
An arrow on the overlay shows where the code's top is assumed to be.
ringcode/src/detect.rs, per binarisation (adaptive then Otsu, dark then light rings):
C1 − λC2 is rank one (l lᵀ) at the
pencil's double root. Then normalise the outer ellipse to a unit circle.| Path | What |
|---|---|
ringcode/ | Core library: format spec, SVG and raster rendering, detector. No dependencies. |
web/ | Browser app in Rust (web-sys), built with trunk; PWA manifest, service worker and icons. |
.github/workflows/pages.yml | Tests, builds and deploys to GitHub Pages. |
cargo test -p ringcode # unit + round-trip tests
cargo run -p ringcode --example decode_file -- photo.jpg # decode images from the CLI
cargo run -p ringcode --example svg -- HELLO > hello.svg # make a code
cargo run -p ringcode --example web_icons -- web # regenerate icon.svg and app icons
cd web && trunk serve --open # app at http://127.0.0.1:8080
The camera and the service worker need a secure context, which localhost and
GitHub Pages both provide.
The app is an installable PWA (web/manifest.webmanifest). web/sw.js makes it
work offline after the first visit: pages are fetched network-first, trunk's
content-hashed assets are cached permanently, and assets from older builds are
pruned when a new page arrives.
web/icon.svg is published as-is (not content-hashed), so it has a stable URL
next to the app, e.g. for linking to the icon from elsewhere.