A focused, browser-based low-poly 3D modeling, UV pixel painting, and skeletal animation suite built with Vue 3, TypeScript, and Three.js.
Designed from the ground up for indie game developers, retro game creators (PS1/DS/N64 styles), and technical artists who want a fast, no-nonsense workflow without the overhead of massive DCC packages.
PolyEcho combines four integrated workspaces:
[ MODEL ] ➔ [ UV / PAINT ] ➔ [ RIG ] ➔ [ ANIMATE ] ➔ [ GLB / OBJ EXPORT ]
- Model: Box modeling, quad & n-gon topology editing, Blender-style modal CAD gizmos (
G,R,S,E,I,Ctrl+B,K,Ctrl+R,Shift+A). - UV / Paint: Interactive pixel canvas, Bayer 8x8 dithering brushes, retro color palette indexing (PSX, Pico-8, GameBoy, NES), and 3D vertex painting.
- Rig: Visual bone extrusion, hierarchical joint parenting, symmetrize (L/R), and 1-click rigid limb part assignment or 4-influence smooth skinning.
- Animate: Multi-action clip library (
Idle,Walk,Attack, etc.), dope-sheet timeline, automatic/manual keyframing, pose mirroring, timeline event markers, and GLB Animator-inspired real-time clip blending.
- Selection Modes: Object (
4), Origin/Pivot (5), Vertex (1), Edge (2), Face (3). - Modal Operators: Move (
G), Rotate (R), Scale (S), Extrude (E), Inset (I), Bevel (Ctrl+B), Knife Topology (K), Loop Cut & Slide (Ctrl+R). - Topology Operations:
- Merge at Center (
M), First, Last, and Distance (Weld). - Fill Face from Boundary (
F) and Connect Vertices (J). - Dissolve Edges and Vertices.
- Divide / Subdivide (Quads into 4 quads, edges with midpoint interpolation).
- Flip Edge Diagonal (Rotate triangle hypotenuse).
- Separate Selection (
P) & Join Meshes (Ctrl+J). - Flip Face Normals & Recalculate Outside Normals.
- Safe Mesh Cleanup (removes zero-length edges, orphan vertices, degenerate polygons).
- Merge at Center (
- Interactive CAD Placement (
Shift+A): Draw primitives (Box, Plane, Cylinder, Cone, Sphere, Icosphere) directly on grids or surface geometry with snap alignment.
- 2D Pixel Canvas with layers, flood fill, color picker, Bayer matrix dithering, and eraser.
- Automatic planar, box, and cylindrical UV unwrap solvers.
- Real-time 3D Viewport pixel painting and vertex color painting.
- Authentic retro color quantization presets.
- Rigid Part Animation (Default): Assign distinct mesh objects to bones with 100% influence for robots, low-poly characters, and props.
- Smooth Skinned Mesh: Distance-based automatic vertex weight assignment normalized up to 4 bone influences.
- Visual joint manipulators, bone extrusion (
E), bone subdivision, and X-axis symmetrization.
- Multiple Named Animation Clips: Store as many clips as your game requires (
Idle,Walk,Run,Attack_01,Death) in a single model file. - Timeline & Dope Sheet: Compact expandable bone/channel tracks, frame transport controls, adjustable FPS (8, 12, 15, 24, 30, 60), and duration scaling.
- Keyframe Tools: Position, Rotation (quaternion slerp), Scale channels, Auto Key toggle, Copy/Paste Pose, Paste Mirrored Pose (for walking cycles).
- Interpolation: Smooth (
CUBICSPLINE), Linear (LINEAR), and Step (STEPfor snappy retro stop-motion animation). - Timeline Markers / Game Events: Place named event flags (e.g.
footstep_l,hit_frame,land) exported directly in GLB animation metadata. - Clip Blend Preview: Live spherical blend testing between any two animation clips with percentage sliders.
- GLTF / GLB (.glb): Multi-animation skeletal export with bone hierarchies, rigid limb assignments, smooth skins, materials, and marker event metadata in
extras. - Wavefront OBJ / MTL (.obj): Compatible with Blender, Godot, Unity, Unreal Engine, and custom game engines.
- Project Files (.psxproj): Self-contained JSON project format with full undo/redo state history.
| Shortcut | Action |
|---|---|
1 / 2 / 3 |
Vertex / Edge / Face Select Mode |
4 / 5 |
Object / Origin (Pivot) Mode |
Tab |
Toggle Object / Edit Mode |
G / R / S |
Move / Rotate / Scale |
E / I |
Extrude / Inset Faces |
Ctrl + B |
Bevel / Chamfer |
Ctrl + R |
Loop Cut & Slide |
K |
Knife Topology Tool |
F |
Fill Face / Bridge Loop |
J |
Connect 2 Selected Vertices |
M |
Merge Vertices Menu |
P |
Separate Selected Geometry to New Object |
Ctrl + J |
Join Selected Mesh Objects |
Shift + D |
Duplicate Selection |
Delete / X |
Delete Selection |
Shift + A |
Add Primitive Menu (at cursor) |
Space |
Play / Pause Timeline Animation |
Ctrl + Z / Ctrl + Y |
Undo / Redo |
Ctrl + S / Ctrl + O |
Save / Open Project |
Ctrl + E |
Quick Export GLB |
- Node.js 18+
- npm / pnpm / yarn
# Clone the repository
git clone https://github.com/CharmingBlaze/polyecho.git
cd polyecho
# Install dependencies
npm install
# Start local development server
npm run dev
# Build for production
npm run buildOpen http://localhost:5173 in your browser.
- Framework: Vue 3 (Composition API,
<script setup>, TypeScript) - 3D Engine: Three.js
- State Management: Pinia
- Styling: Tailwind CSS
- Icons: Lucide Vue & Custom Blender DCC SVGs
- Build Tool: Vite
MIT License. Free to use for personal, indie, and commercial game development.
