ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻訳待ち
BJJ as a State Machine. Navigate the graph of BJJ, or random roll to discover the game.
翻訳待ち
Loading the full README. The saved excerpt is shown below.
Brazilian jiu-jitsu as a playable state machine, where positions, transitions and submission attempts are all states.
bjjgraph.org ·
Get the data ·
Contribute
Free to use in your browser. No account required. Source-available, noncommercial licence.
Mount from the top: film-study clips, a flashcard question, and the hand of attacks and transitions, each with its odds.
A state is not always a position
A roll never leaves the state machine. It changes which kind of state the players are in.Read the full README ↗| Explore | Drill | Roll |
|---|---|---|
| Follow connected states and study both players' roles. | Review flashcards with spaced repetition and film-study clips. | Choose an attack, pass, escape or continuation and play out its possible outcomes. |
A roll never leaves the state machine. It changes which kind of state the players are in.
| State | What it represents |
|---|---|
| Position | A relatively stable configuration, such as mount or closed guard. Players can still move, apply pressure and fight for control. Stable does not mean motionless. |
| Transition | A transient state: players are moving, applying forces and actively trying to change the configuration. A pass, sweep or escape is a state in the model, not just an arrow between positions. |
| Submission | A transient attacking state, like a transition, with the possibility of ending the game. An established attack can be finished, defended or changed into something else. Entering it is not the same as getting a tap. |
The arrows connect states. Attempt weights describe which techniques are attempted from a position and role. Outcome probabilities describe where an attempt can lead: success, failure or a counter. A submission finish can reach game-over; an unsuccessful attempt continues the exchange.
Positions have Top / Bottom perspectives. Transitions and submissions have Attacker / Defender perspectives. The role is part of the state, not a label for who is winning. Reference hubs group those perspectives for reading; they are not extra playable states.
The app interprets this model rather than stopping on every intermediate node. Submission attacks have their own choices, including a separate Finish action. The architecture reference separates the authored graph from its display and runtime behavior.
Progress stays in your browser. Sign in only if you want cross-device sync.
| Authored JSON files | Count |
|---|---|
| Positions | 133 |
| Transitions | 1,025 |
| Submissions | 353 |
These are source-file counts, not the number of playable orbs. Submission files include 63 family hubs, which group occurrences rather than model executable attacks. Source probabilities are authored per ruleset, with distinct gi and no-gi values.
| Read or download | What you get |
|---|---|
| Latest release | Start here. Two attached assets, graph.json and graph.json.gz: role nodes, attempt weights, outcomes, flashcards and reference material. A snapshot of the graph behind the published site. No account, no API key, no clone. |
content/ | Authored JSON alongside generated Markdown pages. Edit the JSON, not the Markdown. |
graph.json | The same graph at the current revision, in the repository. Around 50 MB, so GitHub will not preview it in the browser; take the release asset or the raw file. |
CITATION.cff | Citation metadata for this project. |
# Authored offers from bottom closed guard, not a runtime-filtered hand.
jq '.positions["closed-guard/bottom"].transitions[] | {technique, attemptProbabilityByRuleset, successRate}' graph.json
# One transient state's performer role, success rates and destinations.
jq '.transitions["kneebar-entry-from-inverted-guard/attacker"] | {fromRole, successRateByRuleset, outcomes}' graph.json
Count authored files in this checkout:
find content/Positions -name '*.json' | wc -l
find content/Transitions -name '*.json' | wc -l
find content/Submissions -name '*.json' | wc -l
Emit the local payload before checking availability, so the validator checks the shipped wire as well as the source graph:
python3 scripts/regenerate_neural_data.py
npm run validate:availability
Read counts.nogi and excluded.nogi.positions in tests/artifacts/ruleset_availability.json. The ranking uses positions[*].transitions[].attemptProbabilityByRuleset.nogi, grouped by target, excluding null cells; success rates come from transitions["<target>/attacker"].successRate. Hubs carry no attempt rows. The content standards explain why null is not zero.
This is the beginning of the README. Read the rest at the original. Read the full README ↗