Appearance
Arcade › PoseLab
Click the game above and it runs right here in your browser. No download, no installer, no account needed. Nodirbek Odilov built it with Cinevva, so it works on a phone or a tablet too.
Nobody has said anything about PoseLab yet. Play it, then tell Nodirbek Odilov what you would add next.
PoseLab was built by Nodirbek Odilov with the Cinevva game creator: describe the game you want in chat, watch it get built, and play it in your browser minutes later.
Remix PoseLab opens the real game in the creator and forks its actual files, chat and design doc, so you start from the code rather than from a description.
Cinevva's analyzer read this game's design doc and its source, then wrote the brief below. "Make your own" hands it to the game creator as your opening message, so you start from a real spec rather than a one-line idea.
Recreate “PoseLab,” a dark desktop-style 3D animation and rigging playground/editor rather than a conventional score-based game. Use a full-screen three-column layout with a top toolbar, central real-time 3D viewport, left scene/rigging sidebar, right inspector/animation sidebar, and a bottom timeline. Visual style: near-black charcoal UI (#101216/#171a20) with thin dark gray borders, compact Inter/system sans-serif typography, muted gray secondary labels, teal accent for the POSELAB brand and active values, blue accent for selection, and yellow diamond keyframes. The header is about 54px high and reads “POSELAB” in spaced bold teal lettering followed by “3D animation + rigging playground.” On the right side of the header place buttons “+ Cube,” “+ Sphere,” “Add Rig,” and “Frame All.” Central viewport: render a Three.js-style perspective 3D scene against a dark blue-black background with subtle fog. Include a large dark floor plane, a gray-blue grid, world axes, hemisphere lighting and a bright directional light with shadows. Enable orbit camera controls: drag to orbit, wheel/pinch to zoom, with the camera initially looking toward the objects from an elevated diagonal angle. Put a non-interactive hint in the lower-left of the viewport: “Click a mesh to edit it · drag the timeline scrubber · press K to keyframe”. On startup create one cube and one rig automatically. The cube is a teal/cyan 1.5-unit box, positioned around x=-2, y=1.1, z=0, and named “Cube_1”; it casts a shadow and is selected initially. The rig is an orange capsule-like body, named “Rig_2,” at the origin: a capsule body centered around y=1.4, plus a simple yellow/orange bone chain consisting of Root, Spine, and Head segments rising through the body. The rig body and bones are visible in the viewport; bones are thin cylindrical segments with a warm yellow appearance. New objects should be arranged in a simple grid-like placement: each added primitive gets x based on its insertion index and z rows, with spheres blue/lavender and cubes teal. Name new primitives “Cube_N” or “Sphere_N”; name new rigs “Rig_N”. Add Rig creates the orange capsule and Root/Spine/Head chain. “+ Bone” adds another thin bone to the currently selected rig or parent, selects it, and labels it “Bone_1”, “Bone_2”, etc. Left sidebar: a “Scene” section showing clickable scene items, with the selected item highlighted blue. Show top-level meshes and rigs such as Cube_1 and Rig_2. Below it, a “Rigging” section with the text “Select a rig or mesh, then add a bone chain.” and a full-width “+ Bone” button. Below that, a “Shortcuts” section showing exactly: “Orbit: drag”, “Zoom: wheel / pinch”, “Select: click object”, “Keyframe: K”, and “Play: Space”. Clicking visible 3D objects should select the owning object/rig and update the list and inspector. Right sidebar: an “Inspector” section. When nothing is selected show “Nothing selected.” When selected, show a small teal type badge (such as mesh, rig, or bone), the selected object name, and numeric controls for X, Y, Z position plus an R field for Y rotation. Editing these number inputs immediately changes the selected object’s transform. Under it, an “Animation” section with FPS numeric input defaulting to 24, End numeric input defaulting to 120, and a full-width “Set Keyframe (K)” button. Bottom timeline: span the full width, separated by a top border and dark background. On the left show “▶ Play,” “■ Stop,” and a teal time readout initially “0 / 120.” On the right show a horizontal scrubber track with labels 0, 30, 60, 90, 120 and yellow diamond keyframe markers. Clicking or dragging the track sets the current frame from 0 to the configured End value and applies animation poses. Pressing K or clicking Set Keyframe stores the selected object’s current position and rotation at the current rounded frame; replace an existing keyframe at that frame, otherwise sort it chronologically. Clicking a yellow keyframe jumps to it. Animation behavior: Play toggles playback; Space also toggles it. While playing, advance frames at the FPS value (default 24), interpolate position and Euler rotation between neighboring keyframes, and loop back to frame 0 after End. Stop pauses and resets to frame 0. The time display must update as the frame changes. Keyframing is per selected object and stores position plus rotation, with linear interpolation. “Frame All” reframes the orbit camera around all scene content. Keep controls functional with no combat, enemies, score, lives, or win/lose state; the goal is to manipulate scene objects, construct a simple rig, and pose/animate them on the timeline. On narrower screens, hide the right sidebar and use a two-column layout while preserving the viewport and timeline.