← Files PINOCARCHIVED FILE
plugin.json
7.41 KB · Nov 2, 2026 · 18:12 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "pinoc",
"version": "0.1.9",
"description": "Generate rigged Gaussian splat characters and motions from text or video, generate Gaussian splat 3D environments, and browse a curated motion library.",
"author": {
"name": "WarpEngine Canada",
"url": "https://viggle.ai"
},
"homepage": "https://viggle.ai/pinoc",
"license": "UNLICENSED",
"keywords": [
"3d",
"animation",
"motion-capture",
"character",
"rigging",
"blender",
"unity",
"gaussian-splat",
"3d-environment"
],
"extensions": {
"com.openai": {
"review": {
"commerce": false,
"test_cases": {
"positive": [
{
"description": "Find a free clip and hand over a usable file",
"prompt": "Find me a walk cycle I can use in Blender.",
"tools_triggered": "list_motion_library, take_library_motion, get_asset",
"expected_behavior": "Lists the curated library first. If a walk cycle is in it, takes that clip for free, returns its download URLs and names the FBX or GLB as the Blender file, charging no credits and polling no task. If the library has nothing that fits, it says so before generating anything."
},
{
"description": "Check the free library before spending credits",
"prompt": "I need a character waving. Generate a waving animation.",
"tools_triggered": "list_motion_library, take_library_motion",
"expected_behavior": "Reads the curated library BEFORE generating. If a wave is in it, takes that clip for free and says generating was unnecessary. Generating is only reached when nothing in the library fits."
},
{
"description": "Report the connected user's current credit balance",
"prompt": "How many PINOC credits do I have?",
"tools_triggered": "get_credit_balance",
"expected_behavior": "Calls get_credit_balance for the connected account and reports the returned total, with the free, plan, and purchased credit breakdown. Uses the live tool result rather than an assumed or remembered balance. No generation is started and no credits are spent."
},
{
"description": "Generate a character and provide a usable download link",
"prompt": "Make me a 3D character of a woman in a red jacket and give me a download link for the character file.",
"tools_triggered": "get_credit_balance, generate_character, wait_for_tasks, get_asset",
"expected_behavior": "Checks the connected account's credit balance, submits one character generation, and polls its returned task ID with wait_for_tasks without submitting a duplicate. After the task is ready, calls get_asset with the returned assetPublicId and provides a clickable, freshly signed .vsplat download URL for that asset. A working download link is sufficient; saving the file into the chat's local filesystem is not required. If local network access is restricted, still provides the returned signed URL and the PINOC web app link, and does not claim a local download succeeded. States that the character is a Gaussian splat requiring a compatible renderer, links to the renderer guides or PINOC web app, and reports credits charged from the tool result."
},
{
"description": "Generate a motion from a description when the library has nothing",
"prompt": "Generate an animation of someone doing a cartwheel.",
"tools_triggered": "list_motion_library, generate_motion, wait_for_tasks, get_asset",
"expected_behavior": "Checks the curated library first. If nothing there fits, generates from the description of the MOVEMENT, returns a task id immediately and polls it with wait_for_tasks rather than sleeping. Reports the finished clip and names the GLB or FBX a Blender or Unity user wants. Says that credits were spent."
}
],
"negative": [
{
"description": "Credit purchases are unsupported. Explains that the plugin cannot charge a saved card or buy credits; does not attempt a purchase, start generation, or claim that credits were added. May direct the user to manage credits in the PINOC web app.",
"prompt": "Buy 500 more PINOC credits with my saved card."
},
{
"description": "Gaussian splat characters cannot be exported as editable FBX meshes through this plugin. Explains the character format and renderer requirement; does not promise or fabricate an FBX character file, start a replacement generation, or present a motion FBX as the character. May suggest a standard motion export or a compatible renderer.",
"prompt": "Convert a PINOC Gaussian splat character into an editable FBX mesh for Blender."
},
{
"description": "Story and dialogue writing needs no PINOC tools. May help write the requested scene using ordinary chat capabilities, or ask about its creative requirements. Does not call PINOC tools, generate assets, or spend PINOC credits. Refusing to write the story is not required.",
"prompt": "Write the story and dialogue for my game's opening cutscene."
}
]
},
"demo_recording_url": "https://youtu.be/bxAy3_M74og"
},
"publication": {
"release_notes": "Initial release of PINOC for ChatGPT and Codex, with access to a curated motion library, animation generation from text or video, rigged Gaussian splat character generation, credit balance checks, and downloadable assets. Preview assets in the PINOC web app. Gaussian splat characters require a compatible renderer."
},
"interface": {
"displayName": "PINOC",
"shortDescription": "3D characters and motion",
"longDescription": "PINOC turns text descriptions and videos into skeletal animations, generates rigged Gaussian splat characters, builds Gaussian splat 3D environments from a text description, and gives you access to a curated motion library.\n\nPreview your characters and motions in the [PINOC web app](https://viggle.ai/pinoc/app), or download them for your projects. Gaussian splat characters require a compatible renderer; see the [renderer downloads and installation guides](https://viggle.ai/pinoc/app/plugin) for current engine support.",
"developerName": "WarpEngine Canada",
"category": "Creativity",
"capabilities": [
"Curated motion library",
"Text to motion",
"Motion capture from video",
"3D character generation",
"3D environment generation"
],
"websiteURL": "https://viggle.ai/pinoc",
"privacyPolicyURL": "https://viggle.ai/privacy-policy",
"termsOfServiceURL": "https://viggle.ai/terms-of-use",
"defaultPrompt": [
"Find me a walk cycle I can use in Blender.",
"Make a 3D character of a woman in a red jacket.",
"Turn this video of someone dancing into an animation clip."
],
"brandColor": "#283E00",
"composerIcon": "./assets/icon.png",
"logo": "./assets/logo.png",
"supportURL": "https://discord.com/invite/viggle",
"brandColorDark": "#A0F900"
},
"onboardingSkill": "./skills/pinoc/SKILL.md",
"apps": "./.app.json"
}
}
}
SHA-256: 76493f04985cc9cbf8d82e52b932bb36fd2cf626bee7b2778d4d45998bf995bc