ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Turns a STEM figure into a tactile sheet a blind student explores by touch, with a phone camera speaking each part. Built on Meta's Muse Spark, SAM 3.1 and Muse Voice.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗A blind student rests a finger on a raised drawing of a heart. The phone in a stand above the sheet plays a short tone, then says "left ventricle". The student holds the screen, asks "what does it do?", and hears an answer taken from this figure and its teacher's notes only.
Talking Tactile turns a printed STEM figure into a raised sheet that talks. It is for teachers and transcribers who make tactile graphics, and for the blind students who learn from them.
Watch the demo (3 minutes): https://www.youtube.com/watch?v=t0WsLi3jYXY
Project site: https://deepakkts.github.io/talking-tactile/ (how it works, the two sheets with their print PDFs, and a pointer demo that speaks part names in the browser).
Built solo for the Meta Global AI Developer Hackathon (Indie track) on muse-spark-1.3,
sam-3.1 and muse-voice-transcribe-1.0, through the Meta Model API. The first code (the
backend and app skeletons and the tracking spike) was written on Oct 24, before the Oct 26
build window; the Official Rules allow pre-event work (TRACKER.html, decision of Oct 27).
The backend runs six stages: S0 reads the upload, S1 is Spark's plan, S2 is SAM's outlines,
S3 reconciles them, S4 lays out the sheet and S5 draws it (services/api/app/pipeline/).
The teacher (Author mode, on a computer):
The student (Explore mode, on a phone, no screen needed):
spikes/sam.md). Spark now places points and SAM segments from them: 44 point prompts,
44 single-instance answers, with the point inside its own mask in 38 of 44. Code keeps
points off text and leader lines and retries a mask
that spills onto a neighbor (services/api/app/pipeline/s2_points.py).eval/plan/RESULTS.md). On a private test figure, 5 of 12 parts were touchable before
planning (TRACKER.html, decision of Oct 30), and 8 of 10 areas are touchable
with it
(eval/plan/RESULTS.md).TRACKER.html, decision of Oct 30). A part
is now touchable only once the teacher checks it (services/api/app/pipeline/edits.py);
overlap detection became a warning (services/api/app/geometry/overlap.py).services/api/app/ask.py). In the eval, all 9 off-figure questions
went to the teacher, and all 7 prompt injections passed: 6 went to the teacher, 1 was
answered from the teacher's description (eval/qa/RESULTS.md, eval/qa/README.md).TRACKER.html, task d8-46). The CPU fallback timer now
starts only once the GPU model is ready and has a frame (apps/web/src/explore/warmup.ts).
The Gate B page runs a port held to it by spikes/tracking/test/parity.test.mjs.Directions, neighbors and distances come from code, never from the model. Picture questions (shape, biggest, top) are the one exception: Spark answers them from the figure's image.
| What | Result | File |
|---|---|---|
| Part plan, touchable areas (live recordings) | Heart 14 of 15, Japan regions 9 of 9, brain 5 of 6, flower 7 of 13 | eval/plan/RESULTS.md |
| S2 against graded reference masks | Heart: 0 of 4 regressed (3 held, 1 improved). Flower: none of 5 held | eval/plan/RESULTS.md |
| Questions, live, source right | Heart 36 of 38, brain 35 of 35 | eval/qa/RESULTS.md |
| Picture questions (shape, biggest, top) | Heart 5 of 6, brain 6 of 6; 3 of 6 each without the image | eval/qa/RESULTS.md, eval/qa/RESULTS_image_no_image.md |
| Release to first spoken word, Mac, live | p50 5.0 s over 12 questions; two took 13.8 and 14.7 s | eval/qa/VOICE.md |
| Release to first spoken word, iPhone | not measured: the latency film was cut (the Mac figure is above) | eval/gate-b/README.md |
| Touch to tone, iPhone | not measured: the latency film was cut | eval/gate-b/README.md |
| Fingertip error on the 9-point sheet (Gate B, goal 4 mm) | mean 7.93 mm, median 4.0 mm, p95 25.77 mm over 45 touches (eval/gate-b/RESULTS.md) | eval/gate-b/README.md |
| Meta credits spent | $5.42 of $150 (Nov 4) | eval/live/ledger.jsonl |
The questions ran on prompt ask_answer.v2 at minimal effort. The "without the image" picture
numbers come from the older text-only prompt ask_answer_text.v1, so that pair is not a
like-for-like comparison (eval/qa/RESULTS_image_no_image.md).
eval/gate-b/RESULTS.md).eval/gate-b/RESULTS.md). The next
fix snaps each tapped corner to its printed L mark (draft pull request 3, not built).eval/gate-b/README.md) was cut, so touch to tone and
release to first spoken word on the iPhone have no numbers. The only measured figure is the
Mac's, live in Chrome: release to first spoken word p50 5.0 s over 12 questions, two at 13.8
and 14.7 s (eval/qa/VOICE.md).docs/EDGE_CASES.md X5, X6).PLAN.md section 11).eval/qa/VOICE.md), against a 2.0 s budget in RULES.md. Touch needs no
internet once the sheet has loaded from the Mac.eval/qa/VOICE.md).eval/plan/RESULTS.md).docs/EDGE_CASES.md E4). HEIC photos are refused.Mock mode replays recorded live answers (fixtures/recorded/). No key, no network calls.
Needs macOS or Linux, uv, Node 24 and liblouis
(brew install liblouis, or apt install liblouis-bin liblouis-data). On Linux the heart
replays; the brain from Wikimedia Commons does not, because its image normalizes to other pixels there, so
no recording of it matches (services/api/tests/recorded_png.py).
git clone https://github.com/DeepakKTS/talking-tactile.git
cd talking-tactile
make install
MOCK_META=1 make dev # API on :8000, web on http://localhost:5173
npm's 11 moderate advisories are in lint tools only (docs/SECURITY.md).
fixtures/heart.png, keep the default options and press "Make a tactile sheet".On this path a typed question says "Questions are not working right now": mock answers exist
only for the sheets as the question eval published them (the heart with the aortic arch merged
and two teacher descriptions; the brain at grade band "6 to 8"). To try questions, on a fresh
clone run make demo-sheets before MOCK_META=1 make dev (about a minute, no network). It
publishes both sheets that way and prints their Explore links; a question from
eval/qa/questions.jsonl, typed with no finger on the sheet, then gets its recorded answer.
make check runs every test, lint and type check, as CI does.
Copy .env.example to services/api/.env and set MODEL_API_KEY. make preflight checks
the setup; make demo-live starts the API, the phone's HTTPS server and the Gate B page and
prints the iPhone URLs. docs/DEMO.md has every step, including the phone certificate.
services/api/app/config.py).services/api/tests/test_ask_retention.py).Details: docs/PRIVACY.md, docs/SECURITY.md.
Code: Apache License 2.0 (LICENSE, NOTICE). Figures and everything made from them keep
their own licenses (ATTRIBUTION.md):
MediaPipe Hand Landmarker (Apache 2.0), liblouis, and meta-sam-parser (Meta's SAM License,
installed from PyPI, not distributed here).
PLAN.md design, RULES.md hard rules, docs/EDGE_CASES.md edge cases,
docs/DEMO.md filming runbook, docs/review/ reviews by fresh-context AI agents (not people) and their triage, CONTRIBUTING.md.