Back to Marketplace

Run this helper free

Answer 3 questions. Get a result in 2 minutes. Preview free.

Start free →
FREE
Unvetted
Grow Business

PhysicClaw-VEA Control Skill

Control the PhysicClaw-VEA interactive 3D visualization application by sending commands to its Zustand store. Supports two control mechanisms: writing to the openclaw-control.json file, or sending HTTP POST requests to the /api/control endpoint. Use

Install in one line

mfkvault install physicclaw-vea-control-skill

Requires the MFKVault CLI. Prefer MCP?

New skill
No reviews yet
New skill
🤖 Claude Code🦞 OpenClaw
FREE

Free to install — no account needed

Copy the command below and paste into your agent.

Instant access • No coding needed • No account needed

What you get in 5 minutes

  • Full skill code ready to install
  • Works with 2 AI agents
  • Lifetime updates included
SecureBe the first
Ready to run

Run this helper

Answer a few questions and let this helper do the work.

Advanced: use with your AI agent

Description

--- name: physicclaw-vea description: Control the PhysicClaw-VEA interactive 3D visualization application by sending commands to its Zustand store. Supports two control mechanisms: writing to the openclaw-control.json file, or sending HTTP POST requests to the /api/control endpoint. Use this skill to start the application and modify its internal state (mood, thinking, intensity, character, etc.). --- # PhysicClaw-VEA Control Skill This skill allows Claude (or any external agent) to interact with a running instance of the `PhysicClaw-VEA` application. The application must be running (`npm run dev`) for commands to take effect. --- ## Starting the Application ```bash cd PhysicClaw-VEA npm run dev ``` The dev server listens on `http://localhost:5173` by default. --- ## Control Mechanisms There are two ways to send commands. Both are equivalent. ### Method 1 — HTTP POST to `/api/control` (recommended) The Vite dev server exposes a `POST /api/control` endpoint. Send a JSON body with `command`, `value`, and a unique `id`. ```bash curl -X POST http://localhost:5173/api/control \ -H "Content-Type: application/json" \ -d '{"command": "setMood", "value": "excited", "id": "1"}' ``` ```python import requests, time def send_command(command: str, value): requests.post( "http://localhost:5173/api/control", json={"command": command, "value": value, "id": str(int(time.time()))}, ) send_command("setMood", "excited") send_command("setIsThinking", True) send_command("setIntensity", 0.8) send_command("setLastMessage", "Hello from Claude!") send_command("setActiveCharacterId", "base-sphere") ``` ### Method 2 — Write to `openclaw-control.json` Write a JSON object to the `openclaw-control.json` file in the project root. The Vite plugin watches for changes and broadcasts the command via HMR. ```python import json, time def send_command(command: str, value): with open("PhysicClaw-VEA/openclaw-control.json", "w") as f: json.dump({"command": command, "value": value, "id": str(int(time.time()))}, f) send_command("setMood", "excited") ``` > **Important:** Always include a unique `id` (e.g., a Unix timestamp) with each command. The plugin and the `OpenClawControl` component both use this `id` to avoid re-processing stale commands. --- ## Available Commands | Command | Value type | Description | |---------|-----------|-------------| | `setMood` | `string` | Set the entity mood. Values: `'calm'`, `'excited'`, `'thinking'`, `'listening'` | | `setIsThinking` | `boolean` | Toggle thinking animation and intensity boost (+0.8) | | `setIntensity` | `number` | Set shader energy intensity (range: 0 to ~2, default: 0.5) | | `setLastMessage` | `string` | Set the last message displayed in the chat UI | | `setActiveCharacterId` | `string` | Switch the active 3D character. Values: `'happy-idle'`, `'base-sphere'` | --- ## Available Characters | ID | Name | Description | |----|------|-------------| | `happy-idle` | Happy Bot | Animated FBX character (`/HappyIdle.fbx`), Mixamo rig | | `base-sphere` | Energy Core | Procedural sphere with `EnergyShader` (no external model needed) | --- ## Example Workflows ### Make the entity excited while "thinking" ```python import requests, time BASE = "http://localhost:5173/api/control" def cmd(command, value): requests.post(BASE, json={"command": command, "value": value, "id": str(time.time())}) cmd("setIsThinking", True) cmd("setMood", "excited") cmd("setIntensity", 1.5) # ... do work ... cmd("setIsThinking", False) cmd("setMood", "calm") cmd("setIntensity", 0.5) ``` ### Switch to Energy Core and send a message ```python cmd("setActiveCharacterId", "base-sphere") cmd("setLastMessage", "Switching to Energy Core mode") cmd("setMood", "listening") ``` --- ## How It Works Internally 1. **Vite Plugin** (`vite.config.ts` — `openClawControlPlugin`): - Watches `openclaw-control.json` for file changes. - Exposes `POST /api/control` on the dev server. - Broadcasts valid commands as a custom HMR event `openclaw-command` via the Vite WebSocket. 2. **`useOpenClawControl` hook** (`src/hooks/useOpenClawControl.ts`): - Subscribes to the `openclaw-command` HMR event via `import.meta.hot`. - Applies received commands directly to the Zustand `soulStore`. 3. **`OpenClawControl` component** (`src/OpenClawControl.tsx`): - Alternative polling mechanism: fetches `/openclaw-control.json` every second and applies any new command (identified by `id`).

Preview in:

Security Status

Unvetted

Not yet security scanned

Time saved
How much time did this skill save you?

Related AI Tools

More Grow Business tools you might like

codex-collab

Free

Use when the user asks to invoke, delegate to, or collaborate with Codex on any task. Also use PROACTIVELY when an independent, non-Claude perspective from Codex would add value — second opinions on code, plans, architecture, or design decisions.

Rails Upgrade Analyzer

Free

Analyze Rails application upgrade path. Checks current version, finds latest release, fetches upgrade notes and diffs, then performs selective upgrade preserving local customizations.

Asta MCP — Academic Paper Search

Free

Domain expertise for Ai2 Asta MCP tools (Semantic Scholar corpus). Intent-to-tool routing, safe defaults, workflow patterns, and pitfall warnings for academic paper search, citation traversal, and author discovery.

Hand Drawn Diagrams

Free

Create hand-drawn Excalidraw diagrams, flows, explainers, wireframes, and page mockups. Default to monochrome sketch output; allow restrained color only for page mockups when the user explicitly wants webpage-like fidelity.

Move Code Quality Checker

Free

Analyzes Move language packages against the official Move Book Code Quality Checklist. Use this skill when reviewing Move code, checking Move 2024 Edition compliance, or analyzing Move packages for best practices. Activates automatically when working

Claude Memory Kit

Free

"Persistent memory system for Claude Code. Your agent remembers everything across sessions and projects. Two-layer architecture: hot cache (MEMORY.md) + knowledge wiki. Safety hooks prevent context loss. /close-day captures your day in one command. Z