Train and publish
In Teachable Machine, give each pose a useful class name such as jump or stand. Export the model and copy its share URL.
TurboWarp extension · user guide
TMPose connects a Teachable Machine Pose model to TurboWarp. Your camera frame becomes pose probabilities that scripts can read as labels, scores, and Boolean conditions.
Quick start
You need a published Teachable Machine Pose model, a camera, and network access. Load TMPose as a custom extension with Run extension without sandbox enabled, then place these blocks in order.
In Teachable Machine, give each pose a useful class name such as jump or stand. Export the model and copy its share URL.
Paste the model folder URL. A missing trailing slash is added automatically.
Allow camera access. TMPose starts the camera and loads the model automatically if needed.
Read the top label, test one pose, or use a confidence value to control your project.
How it works
While recognition is running, TMPose repeatedly samples the camera, runs the model in the browser, and stores a probability for every class in your model.
current pose is the class with the highest probability. confidence is that class’s score, rounded to two decimal places. confidence of [NAME] reads one named class.
The preview is a camera canvas placed over the TurboWarp stage. It does not become a sprite and does not change model input when hidden.
start camera opens the camera and displays the preview.start recognition also starts the camera and loads the model when necessary.stop recognition clears live results but leaves the camera available.stop camera stops recognition, releases media tracks, and removes the preview.hide camera preview only changes what is shown; recognition can continue.Choosing a result
Default builds expose immediate probabilities. Builds that enable the optional temporalPoseScoring feature also expose accumulated scores for steadier decisions.
Best for quick gestures. The answer follows every frame, so it reacts fast but may flicker near a decision boundary.
Use pose is [NAME] with confidence at least [THRESHOLD]?. Thresholds are clamped to 0–1; 0.75 is a practical starting point.
Best for sustained poses. Evidence is added over elapsed time while older evidence decays, reducing one-frame changes.
The reporter returns an empty label until the best positive score reaches the threshold. Hidden-tab time is excluded. Stopping recognition or resetting clears all accumulated scores.
Block guide
Reporter values are empty or zero before the first usable prediction and after recognition stops. Boolean status blocks are useful when coordinating startup.
Configure and check the Teachable Machine model.
set model URL to [URL] changes the model and clears the previously loaded one.load model fetches model.json and metadata.json.model is loaded? reports readiness.TMPose version reports the extension build.Control capture separately from recognition.
start camera · stop camera · camera is running?show camera preview · hide camera previewcamera preview is visible?set camera preview opacity to [OPACITY] clamps opacity to 0–1.set camera preview position to [POSITION]Start the loop, read scores, and make decisions.
start recognition · stop recognition · recognition is running?current pose · confidence · confidence of [NAME]pose is [NAME]? uses a fixed 0.75 threshold.pose is [NAME] with confidence at least [THRESHOLD]?Measure startup and show useful failure details.
camera startup time (ms)model load time (ms)first recognition time (ms)last error keeps the latest runtime error message.These blocks appear only when the extension build enables temporalPoseScoring: set accumulated pose accumulation [ACCUMULATION] decay [DECAY], set accumulated pose threshold [THRESHOLD], reset accumulated pose scores, accumulated pose, accumulated score, and accumulated score of [NAME]. Decay is the fraction retained after one second (0–1), and a decay change takes effect the next time recognition starts.
Troubleshooting
Check last error first. Most setup failures come from permissions, an incorrect model URL, blocked network requests, or loading the extension in the sandbox.
Allow camera permission for the TurboWarp page and make sure another application is not exclusively using the camera. The page must run in a secure context (HTTPS or localhost). Then run start camera again.
Use the published Teachable Machine model folder URL—not a link to the editor or an individual JSON file. TMPose appends model.json and metadata.json to that URL. Confirm that the network allows jsDelivr and Teachable Machine model hosting.
Add more varied training examples, keep the whole body visible, improve lighting, and test a threshold such as 0.75. If your build exposes accumulated-pose blocks, use them for a pose that must be held for a short time.
Run show camera preview, set opacity above zero, and choose a supported position. Packaged projects with a modified stage DOM may not support preview attachment; last error explains stage-detection failures.