🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

posecode-embed

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

posecode-embed

Embed a live 3D Posecode movement anywhere with one <script> tag — the web component.

Source
npmnpm
Version
0.1.0
Version published
Weekly downloads
37
-77.84%
Maintainers
1
Weekly downloads
 
Created
Source

posecode-embed

Embed a live 3D Posecode movement anywhere with one <script> tag.

posecode-embed ships a framework-free <posecode-player> web component. Drop it into a blog post, docs page, physio program, or an LLM chat UI — it renders the movement as an animated 3D figure, right where a share link would have gone.

Quick start (CDN, no build step)

<script src="https://unpkg.com/posecode-embed/dist/posecode-embed.js"></script>

<!-- 1. From a share token (what a posecode.org permalink carries) -->
<posecode-player doc="cG9zZWNvZGUgZXhlcmNpc2Ug…"></posecode-player>

<!-- 2. From a URL to a .posecode file -->
<posecode-player src="/movements/squat.posecode"></posecode-player>

<!-- 3. From inline text — reads like the language itself -->
<posecode-player>
posecode exercise "Lateral raise"
  rig humanoid
  pose start = standing
  step "Raise" 1.4s ease-out:
    shoulders: abduct 90
    elbows: flex 10
  step "Lower" 1.6s ease-in:
    shoulders: abduct 0
    elbows: flex 0
  repeat 8
</posecode-player>

The script auto-registers the element and boots each player when it scrolls into view. That's it.

With a bundler

npm install posecode-embed
import "posecode-embed"; // auto-registers <posecode-player>

Or register it yourself for controlled timing:

import { definePosecodePlayer } from "posecode-embed";
definePosecodePlayer(); // idempotent

Attributes

AttributeDefaultDescription
docA posecode-share token (highest precedence).
srcURL of a .posecode file to fetch.
(inline text)The element's text content, used if doc/src are absent.
autoplaytruePlay as soon as the movement loads.
looptrueLoop the timeline.
controlstrueShow the play/pause bar.
autorotatetrueSlowly orbit the camera when idle.
speed1Playback multiplier (0.14).
playgroundhttps://posecode.org/playBase URL for the "Edit ↗" link.

Boolean attributes accept false / 0 / no / off to turn them off, so autoplay="false" works as expected.

Behaviour

  • Lazy & cheap. three.js loads only when a player scrolls into view; many embeds on one page stay idle until seen.
  • Accessible. Honors prefers-reduced-motion (no autoplay, no camera orbit) and exposes a labelled play/pause control.
  • Never blank. A bad token, a failed fetch, or an unparseable movement renders a readable message instead of an empty canvas, and fires a posecode:error event.
  • Isolated. Markup and styles live in a shadow root; nothing leaks into or out of the host page.

Events & API

const player = document.querySelector("posecode-player");
player.addEventListener("posecode:ready", () => player.viewer.pause());
player.addEventListener("posecode:error", (e) => console.warn(e.detail.error));

player.toggle();       // play / pause
player.viewer;         // the underlying render Viewer (null until booted)

MIT-licensed, part of Posecode.

Keywords

posecode

FAQs

Package last updated on 08 Jul 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts