Doop
Doop is an open-source multiplayer design canvas and design MCP for Claude Code, Codex, and any AI agent. Design side by side with agents — free in beta.
Twenty living 3D mascots on one ~25 KB web animation engine, or describe your own in one sentence and let your agent build it.
DesignTypeScript · CSSGitHub @PouryaakOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Give your app a face. Ten living 3D mascots on one ~25 KB web animation engine. React, web component, agent-ready.
Taken from the repository README
Loading the full README.
Read the full README ↗
<script type="module" src="https://cdn.jsdelivr.net/npm/[email protected]/dist/wobnimo.js"></script>
<wobnimo-mascot character="mochi" state="thinking"></wobnimo-mascot>
Drop those two lines anywhere and a living 3D mascot is on your page.
// npm i wobnimo
"use client";
import { Mascot } from 'wobnimo/react';
export function CopilotAvatar() {
return <Mascot character="volt" state="thinking" style={{ width: 160, height: 160 }} />;
}
Import one character (
wobnimo/characters/mochi, ~1.2 KB) or the full cast — you only ship what you use.
import { mount } from 'wobnimo';
import { mochi } from 'wobnimo/characters/mochi';
const mascot = mount(document.querySelector('#mascot'), mochi);
agent.on('status', (s) => mascot.setState(s)); // idle · thinking · speaking · celebrating…
mascot.setPalette({ jelly: '#ff5d8f' }); // recolour live, no rebuild
Or register
<wobnimo-mascot>once viaimport "wobnimo/element"in Vue, Svelte, or plain JS.
import { Mascot } from 'wobnimo/react';
const { status } = useChat(); // Vercel AI SDK
<Mascot character="mochi" status={status} />
npx wobnimo skill # installs the skill for Claude Code, Codex, Cursor, OpenCode…
npx wobnimo check mascots/drift.ts # measures real 3D geometry & reports exact coordinate fixes
npx wobnimo preview mascots/drift.ts # renders front, side, back, face close-up & all 10 moods to PNG