ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Animated equations where every symbol is explained. Watch the math, read it, change it and share what you make.
EducationJavaScript · CSSGitHub @GuySittingInChairOnlineOwner 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
Animated math sketches with live KaTeX equations, and an Explain panel that teaches the symbols and code behind them.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Live at aiship.lol.
Animated math sketches in the browser. Each sketch is a mathematically defined
transformation playing on a loop (Hopf fibrations, minimal surfaces, fractals,
reaction–diffusion, splines, …), with its equation shown live in KaTeX, using the same
numbers the animation is using on that frame.
Built with three.js, KaTeX and
Vite.Read the full README ↗Live at aiship.lol.
Animated math sketches in the browser. Each sketch is a mathematically defined transformation playing on a loop (Hopf fibrations, minimal surfaces, fractals, reaction–diffusion, splines, …), with its equation shown live in KaTeX, using the same numbers the animation is using on that frame.
Built with three.js, KaTeX and Vite.
The landing page (/) has a gallery of every sketch, each sketch has its own address,
/s/<sketch-id>, and each person a profile, /u/<name>. On a phone or tablet, swipe up
and down through sketches; tap the animation to hide or show everything, and use the hand
button to touch the sketch itself (rotate, drag) instead of swiping. In a sketch, tap its name in the top bar to pick another one. The dock
at the bottom has previous/next, Explain, Params, Comments, Code, and
More (music and recording, microphone, hide controls, fullscreen). On a computer, scroll
(or swipe a trackpad) to flip to the next sketch, and hold Ctrl while scrolling to zoom. It
all works on phones too; panels open as sheets from the bottom.
| Key | Does |
|---|---|
| ← / →, ↑ / ↓, or the scroll wheel | previous / next sketch |
| E | Explain panel: every symbol in the current equation, what it means and how to type it, plus a walkthrough of the sketch |
| H | cycle view: everything → equation only → clean |
| Esc | close panels |
| F | fullscreen |
| R | record video |
New to the math or the code? Start with docs/guide.md. It's a field guide to the symbols, LaTeX, JavaScript loops, shaders and the math behind the sketches. It's also what the Explain panel shows.
You need Node.js 20 or newer.
git clone <this repository's URL>
cd three-katex-shader
npm install
npm run dev # the app, at http://localhost:5173
When running locally, sketches you create or edit in the code panel are saved as real
files in src/sketches/, so you can commit them.
src/sketches/ one file per sketch (the part to read and write)
src/lib/ shared math and geometry helpers (motion.js: lerp, smooth, phaseOf, …)
src/core/ app engine: sketch runner, LaTeX, audio, recording
src/ui/ the panels
docs/guide.md the learning guide, also shown in the Explain panel
server/ an old local-only comments API (used by server/example-bot.mjs); not needed by the site
supabase/ database schema and access rules for sign-in, comments, notes, shared sketches
docs/guide.md. Section 9 shows the format for a walkthrough; a new table row in
sections 3–4 shows up in the Explain panel automatically.src/sketches/. A sketch should be a
transformation defined by an equation (motion(t)), with its latex showing the live
values. The guide covers the anatomy of a sketch. With npm run dev running, run
npm run thumbs -- <sketch-id> to capture its gallery thumbnail into public/thumbs/
(needs Firefox; set FIREFOX=/path/to/firefox if it isn't found).Open a pull request with your change.
The app builds to plain static files:
npm run build # output in dist/
On Vercel, import the repository as a new project and keep the detected Vite settings. Every push to the main branch redeploys.
Signing in (with GitHub, Google or Discord) gives everyone a profile at /u/<name> and lets them:
Notes and shared sketches are reviewed before anyone else sees them. A shared sketch is JavaScript that runs in every viewer's browser, so the admin reads it first in the 🛡 Review panel, which only the admin can see. Until it's approved, a sketch only runs for the person who shared it.
The data lives in Supabase. The access rules are in
supabase/migrations/0001_community.sql.
To run your own copy with your own database:
supabase/migrations/ in order in
its SQL Editor. First change the GitHub user id in handle_new_user() to your own
(gh api user --jq .id), so that you become the admin, and SITE_OWNER in
src/core/authors.js to your username.https://<your-project>.supabase.co/auth/v1/callback, and enable that provider in
Supabase with its client id and secret. The sign-in menu only lists enabled ones.http://localhost:5173/** as a redirect URL.VITE_SUPABASE_URL and VITE_SUPABASE_PUBLISHABLE_KEY (in .env.local, or in
Vercel's environment variables). Without them the app uses this project's database.