An interactive playground where your drawings come to life, interact with each other, and respond to you through AI-powered conversations.
5.5.1.mp4
if the video is not playing please visit: https://www.youtube.com/watch?v=dVhpT-ZqagE
- Bring Your Drawings to Life: Upload your drawings or images and watch them transform into animated characters
- Interactive Environments: Place your animated drawings in various themed scenes like forest, beach, space, and more
- Personality-Driven Characters: Give your creations unique personalities - friendly, curious, silly, energetic, and more
- AI-Powered Conversations: Characters can talk to each other and to you with context-aware conversations
- Daily Topics: Every day features a new conversation topic to inspire interactions
- Group Conversation: Place two character and more to trigger daily chat

- Drag & Drop: Freely position your characters around the scene
- Chat Interface: Open personal chat windows with any character for one-on-one conversations

- Frontend: React, TypeScript, TailwindCSS
- Backend: Node.js server for image processing
- AI: OpenRouter API (deepseek-v3) for generating character responses
- Animation: Meta Custom animation processing Model for uploaded drawings [(https://sketch.metademolab.com/)]
- Node.js (v14 or higher)
- npm or yarn
- Backend server running on localhost:5000 (see backend repository)
-
Clone the repository:
git clone https://github.com/yourusername/painty-dance-ai.git cd painty-dance-ai -
Install dependencies:
cd frontend npm install -
Create a
.envfile in the frontend directory with your OpenRouter API key:VITE_OPENROUTER_API_KEY=your_api_key_here -
Start the development server:
npm run dev -
Open your browser and navigate to
http://localhost:5173
- Select a Scene: Choose from various backgrounds using the scene selector at the top
- Upload a Drawing: Click the "上传作品" button to upload your drawing or image
- Add Details: Give your character a name, description, and personality
- Interact: Drag your characters around, watch them talk to each other when they're close
- Chat: Click the chat bubble on any character to start a one-on-one conversation
frontend/
│
├── src/ # Source files
│ ├── components/ # React components
│ │ ├── DraggableGif.tsx # Draggable character component
│ │ ├── ChatModal.tsx # Chat interface
│ │ ├── UploadModal.tsx # Upload interface
│ │ └── SceneSelector.tsx # Scene selection component
│ │
│ ├── constants/ # Application constants
│ ├── types/ # TypeScript type definitions
│ ├── utils/ # Utility functions
│ ├── App.tsx # Main application component
│ └── App.css # Styles
│
└── public/ # Static assets
The backend server handles image processing to animate your static drawings. It should be running on localhost:5000. For more information, see the backend repository.
The backend needs to run through conda environment. Please follow these instructions to set up conda:
-
Activate the animated_drawings conda environment:
conda activate animated_drawings -
Ensure you're in the root directory of AnimatedDrawings:
cd {location of AnimatedDrawings on your computer} -
Start up a Python interpreter:
python
To get it working, you'll need to set up a Docker container that runs TorchServe. This allows us to quickly show your image to our machine learning models and receive their predictions.
Follow these steps:
-
Install Docker Desktop and ensure it's running
-
Run the following commands, starting from the Animated Drawings root directory:
cd torchserve # build the docker image (takes ~5-7 minutes on Macbook Pro 2021) docker build -t docker_torchserve . # start the docker container and expose the necessary ports docker run -d --name docker_torchserve -p 8080:8080 -p 8081:8081 docker_torchserve
- Background images from Unsplash
- AI text generation powered by OpenRouter
- Animation model powered by metaAILab
Created for 2025 AI Challenge Cup 挑战杯官网

