Spaces:
Running
Running
Commit History
-
revert(llm): restore eight-emotion production model
Onur Solmaz +1: GPT-5.6 SolCo-Authored-By: GPT-5.6 Sol <noreply@pi.dev> Generated-By: pi 0.84.3 (https://pi.dev)89686a6 -
feat(llm): deploy 73-emotion browser model
Onur Solmaz +1: GPT-5.6 SolCo-Authored-By: GPT-5.6 Sol <noreply@pi.dev> Generated-By: pi 0.84.3 (https://pi.dev)ffd698f
-
fix(emotions): generate web contract from Rust
Onur Solmaz +1: GPT-5.6 SolCo-Authored-By: GPT-5.6 Sol <noreply@pi.dev> Generated-By: pi 0.84.3 (https://pi.dev)c6af819 -
feat(emotions): add comprehensive child-safe registry
Onur Solmaz +1: GPT-5.6 SolCo-Authored-By: GPT-5.6 Sol <noreply@pi.dev> Generated-By: pi 0.84.3 (https://pi.dev)d8622a2
-
fix(web): hide static entry path
Onur Solmaz +1: GPT-5.6 SolCo-Authored-By: GPT-5.6 Sol <noreply@pi.dev> Generated-By: pi 0.84.3 (https://pi.dev)071dbe9 -
feat(web): refine customization and scene behavior
Onur Solmaz +1: GPT-5.6 SolCo-Authored-By: GPT-5.6 Sol <noreply@pi.dev> Generated-By: pi 0.84.3 (https://pi.dev)50d7c01 -
feat(web): refine speech bubble and customization
Onur Solmaz +1: GPT-5.6 SolCo-Authored-By: GPT-5.6 Sol <noreply@pi.dev> Generated-By: pi 0.84.3 (https://pi.dev)389100c -
fix(web): true silhouette tangency for the speech tail
Onur Solmaz +1: Claude Fable 5The flare approach was mathematically wrong: no amount of flaring makes a tube edge tangent to the ellipse unless the edges ARE the tangent lines from the tail's apex. Now: scale the bubble's silhouette ellipse to a unit circle, compute the classical tangent points from the apex, and build the tail as a straight-edged taper whose end ring passes exactly through the tangent chord (nudged inside for a watertight union). Tangency by construction; the tail hides if the apex ever sits inside the ellipse. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>18e8175 -
fix(web): bell tail from the head's left, hover-proof crew terrain
Onur Solmaz +1: Claude Fable 5Tangent-smooth tail: view-aligned elliptical cross-sections (thin toward the eye so it never pokes the lens faces) with a trumpet flare whose silhouette slope blends into the bubble outline; it now springs from the screen-left side of the head. Crew hover fix: terrain boxes take the MIN of five samples per cell, so a duck can stand at most at the lowest deck level inside a cell — invisible plateaus at height steps are gone — and the pen shrinks to the strictly flat aisle. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>4e9ac51 -
fix(web): dynamic-viewport chat anchoring, tangent tail merge
Onur Solmaz +1: Claude Fable 5The chat bottom was hiding under mobile browser toolbars: 100% height is the layout viewport, so on phones the input bar sat below the visible area and the history seemed to 'grow downward'. The app now sizes to 100dvh (visible viewport) with safe-area padding, so the input bar is always the on-screen bottom edge. The tail cone now aims at the bubble's center and dives inside the volume, so it meets the ellipsoid as a smooth tangent intersection instead of a cornered joint. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>ea3e882 -
fix(web): viewport-analytic bubble placement, cone tail, anchored chat
Onur Solmaz +1: Claude Fable 5The bubble no longer rides the head: the head projects to NDC, the bubble targets a clamped screen spot above it (margins account for the bubble's own projected size), and that spot unprojects to world at the head's depth — always fully visible, floating with its own gentle bob, independent of gestures. The connection is now a proper speech tail: a curved tapered cone (custom tube geometry along a bezier) from a point at the head that swells and merges into the bubble, rebuilt each frame so it follows the head. The chat panel is absolutely anchored bottom-right with justify-content flex-end and a viewport-capped height: the input bar is the bottom edge, chips above, scrolling history above that — it cannot grow over its own composer. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1a25fbb -
feat(web): real 3D speech bubble mesh; foldable-aware framing and chat
Onur Solmaz +1: Claude Fable 5The bubble is now actual geometry — a flattened sphere volume plus stepping tail blobs, MeshStandardMaterial shaded by the scene lights with a real specular sheen, casting shadow, turning to face the camera, text as a transparent decal on its front. The camera pulls back progressively on narrow aspects so foldables and phones keep the hangar context instead of cropping to a giant head. Touch devices of any width get the compact chat (340px, 30vh feed) so the conversation never floats over the duck. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>0721766 -
fix(web): 3D-shaded seamless speech bubble; compact mobile chat
Onur Solmaz +1: Claude Fable 5The bubble silhouette (ellipse + tail) now draws once on an offscreen canvas and is shaded there — top-left key light with radial falloff, darker under-rim, gloss streak — then stamped with a single soft drop shadow, so the tail joins seamlessly and the bubble reads as a lit 3D object. Text stays inside the ellipse (2+2 lines max, smaller sprite). On phones the chat no longer swallows the screen: shorter feed, tighter bubbles/chips/input. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>0c7040c -
chore(web): default base to / (the Space serves at root)
Onur Solmaz690d285 -
feat(web): duck profiles are local-or-account only, never URLs
Onur Solmaz +1: Claude Fable 5Per the owner: drop the URL-fragment profile scheme entirely. The duck lives in localStorage, and signing in with Hugging Face is the way to keep it beyond this browser. The creator's link-share button goes away; lint/prettier now ignore the deployed root bundle. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>c39dc3a -
feat(web): HF account sync, smooth 3D speech bubble, Space source link
Onur Solmaz +1: Claude Fable 5Sign in with Hugging Face (Space OAuth, client-side PKCE via @huggingface/hub): the duck profile stays storage-free by default and, once signed in, also saves to a private microquack-duck repo in the user's own namespace — per-user private cloud storage with no server. The creator gains the call-to-action; cloud saves debounce on change and the saved duck loads on sign-in (a URL-shared duck still wins). The speech bubble is now a classic smooth ellipse with drop shadow, top-light gradient and rim sheen, and a curved tail. Header source link points at the Space. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>74e1d62 -
feat(web): Sims-style action ring, true 3D blob bubble, slim chat toggle
Onur Solmaz +1: Claude Fable 5Clicking the duck now opens a radial ring of round actions distributed around the bot — Customize above, Mute and Speak flanking — instead of muting directly; the header Customize button is gone. A pulsing glowing tap hint appears on the duck every ~19s until the first click. The speech bubble is now genuinely in the 3D scene: a billboard sprite drawn on canvas as an amorphous comic blob (bulged rim, drop shadow, shrinking thought-circles for the tail, smaller text) that rides the head and foreshortens with the camera; the muted state lives in the same bubble. Chat stays bottom-right on every screen, collapsing via a slim vertical arrow on its edge (a top tab on phones). Deduplicated the stylesheet blocks that had piled up. ?ring opens the radial for testing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>6a82a71 -
feat(web): click-to-mute duck, in-world speech bubble, collapsible chat
Onur Solmaz +1: Claude Fable 5The Pause button and pause mode are gone. Clicking the duck itself hushes it (raycast hit test): idle chatter stops, audio cuts, and a mute bubble hovers over its head — click it (or the duck, or just talk to it) to unmute. What the duck says now appears instantly in a real speech bubble anchored in the 3D view (the head position projected to the screen each frame, tail pointing at the duck), fading out after the utterance while the chat window keeps the full log. The chat panel gets a Hide chat / Show chat toggle. Header buttons share one size and no longer wrap. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1b5c6f6 -
feat(web): duck character creator, sim deck terrain, UI polish
Onur Solmaz +1: Claude Fable 5Customize your duck: a full character-creation screen (chat hides, the duck faces the camera centered on its pod, color controls flank it — shell/face/trim left, beak/eye/feet right — name on top). Profiles are storage-free: six colors and a name pack into a ~35-char #d= URL fragment (base64url bytes), so a link IS the duck; the profile also persists in localStorage and 'Share your duck' hands out the link. Palette applies live through slotsFromColors on the classic materials. Physics: the deck contour now bakes into the sim as static collision boxes sampled from the visual floor, so feet climb real lips instead of clipping, spawns and fall-checks are ground-relative, and the rigs sit at constant aisle height (?nosim keeps the scripted crew for headless captures). Pod at 60% size, centered under the feet. Header: GitHub button with the repo slug, Share button with an icon, dark readable credit. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>6717050 -
fix(web): fence the crew, moderate lighting, inside-out loading, seamless sim handoff
Onur Solmaz +1: Claude Fable 5Physics walls now fence the walkable aisle (the crew bumps the boundary instead of climbing set dressing or nearing the force field), patrol loops shrink to fit, the carrot clamps inside, and the visual deck-follow clamps so a raycast on a console top can't levitate anyone. Robot lighting comes down (hemisphere 0.85, env 0.45, softer sun/fill) for contrast. The stage loads inside-out — duck, then hangar, then sky. And the physics takeover spawns each duck exactly where its scripted double stands, so nothing teleports at the transition. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>144828c -
feat(web): run the physics crew on phones too
Onur Solmaz +1: Claude Fable 5Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>fa69596 -
feat(web): real MuJoCo physics for the crew, hillshade terrain
Onur Solmaz +1: Claude Fable 5The background crew now runs the actual microduck simulation in the browser: the official MuJoCo WASM build steps the pollen-robotics MJCF (visual geoms stripped, collision meshes rebuilt from the already-loaded GLB), and the trained walking/skating ONNX policies run at 50 Hz through onnxruntime-web — same obs layout, timestep and decimation as the robot runtime, ported from pollen-robotics' microduck-simulator. A carrot on each patrol ellipse becomes twist commands; fallen ducks respawn at the keyframe. Sim state syncs straight into the visual rigs (trunk freejoint plus all hinges, wheels included). Desktop only; any failure keeps the scripted crew (?sim forces it on lite for testing). The planet's terrain now reads when viewed face-on: hillshade (height slope against the bake sun) is baked into the albedo, displacement pulled to 3.5% where face-seam gaps stay sub-pixel. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>17e793d -
feat(web): pronounced 6% relief with bump shading, yellow pause, solmaz.io
Onur Solmaz +1: Claude Fable 5Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>41c4481 -
feat(web): 3% terrain relief, five-bot crew with walkers, branding, moon rise
Onur Solmaz +1: Claude Fable 5Bake a per-face height map from the same noise and displace vertices in the vertex shader (one texture tap per vertex), peaks ~3% of the planet radius; equal mesh/height resolution on every face so displaced seams cannot crack. Crew grows to five — three skating rollers and two legged ducks walking their loops with a phase-offset gait. Header gains the Pollen Robotics / Hugging Face byline, bottom-left a built-with-love credit, chat bubbles rebalanced (user more opaque, duck less), and the near moon rises half-behind the planet's limb in the visible sky slice. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>9a92f39 -
perf(web): GPU-baked procedural planet, real-earth elevation, aligned field
Onur Solmaz +1: Claude Fable 5Bake the procedural-planets terrain (fbm continents + masked ridged accents) into per-cube-face textures once on the GPU at load — per-pixel crisp at ~3000 texels across the visible disc — then render the planet as a plain low-poly textured sphere: the per-frame per-pixel noise that was cooking laptops is gone, and clouds bake to a static equirect texture that drifts by rotation. Elevation is now real-earth subtle (color only, smooth limb). Moons move into the bay's slice of sky, the force field polygon overfills the door rim (frame occludes the excess) and runs below the threshold so nothing leaks at the sides, and ?fieldfill renders it solid for alignment checks. Drops the simplex-noise dependency. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>a1c9ba7 -
feat(web): mesh-displaced procedural planet and exact door-shaped force field
Onur Solmaz +1: Claude Fable 5Port the terrain generation from XenoverseUp/procedural-planets (MIT): a cube-sphere displaced by layered simplex filters (fbm continents plus a ridged, masked mountain layer at reduced strength), colored through its elevation/depth gradients on a standard PBR material so the sun glints off metallic water, with the atmosphere treatment of three.js webgpu_tsl_earth (day blue, twilight orange) as a fresnel tint plus a limb shell. The camera-facing cube faces carry ~512 vertices across the visible disc and generation runs one face per tick off the frame loop; the far side gets a token mesh. The force field is now the door polygon itself, traced from the hangar GLB's rim geometry, so it fits the opening exactly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>b3187e1 -
feat(web): textured earth backdrop scene, aligned force field, sane moons
Onur Solmaz +1: Claude Fable 5Render the sky in a separate backdrop scene with a rotation-only camera — the standard trick for very large, very distant bodies: only direction and angular size matter, so no far-plane or depth-precision strain. The planet is now the three.js webgpu_tsl_earth approach ported to GLSL (NASA day/night maps blended at the terminator, packed cloud mask, fresnel atmosphere). Moons sit at believable angular sizes clear of the disc, the force field is widened to span the full bay aperture, and the earth textures come from three.js examples (credited). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>d8a4eb2 -
fix(web): don't mistake a quick reload for a crash; lighter blue planet
Onur Solmaz +1: Claude Fable 5The boot crash-guard left its 'pending' mark set for 20s, so refreshing during that window booted the next load into safe mode with the hangar stripped. A reload fires pagehide (a crashed tab never does), so clear the mark there and reserve safe mode for real crashes. Also shift the planet's oceans and atmospheric lift toward light blue. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>d78108c -
feat(web): sci-fi hangar scene with procedural planet, force field, and display pod
Onur Solmaz +1: Claude Fable 5Replace the starship-bridge set with Kerem Kavalci's CC-BY "SCI FI HANGAR" (4k source textures, simplified + meshopt/webp-compressed to 1.7MB), placed from measured floor geometry so the duck stands on the upper deck pad with the full bay mouth in frame. Space is now procedural: a shader planet (fbm continents, ocean glint, ice caps, animated cloud layer, rim atmosphere) fills the opening as an orbital horizon, with point-star backdrop, repositioned moons, and a blue octagonal force field across the mouth. The duck presents from a low circular pod; roller crew follow the real deck contour via cached raycasts; squats now pin the soles' bottom-centers using calibrated drift compensation. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>fd48861 -
fix(web): extract debug pose overrides to satisfy complexity gate
Onur Solmaz458e06b -
fix(web): per-leg squat calibration - mirrored joint frames bent legs inversely
Onur Solmaz446c237 -
fix(web): crash boot-guard with auto safe mode, 1k texture cap and no crew on lite
Onur Solmaz2c3f3f3 -
fix(web): mobile lite tier - no shadows, capped dpr, no backdrop blur, portrait framing
Onur Solmaz5f70397 -
feat(web): starship bridge interior with window band, crew consoles, and roller-duck crewmates
Onur Solmaz82f6b57 -
feat(web): measured eye-ring profile, lens glimmer, planted-feet squat bounce
Onur Solmaz4c807f3 -
feat(web): pause overlay, exact jaw axle axis, smooth turned eye parts
Onur Solmaza73f79b -
fix(web): drop the sound-permission explainer line
Onur Solmaz7080fb5 -
fix(web): jaw pivots at the physical axle boss, real max opening
Onur Solmaz58417cb -
fix(web): rebuild creased normals for smooth shading
Onur Solmaz0ff18a4 -
feat(web): classic colourway, wake-on-tap greeting, pause button
Onur Solmazad68fc7 -
feat(web): centered darkening sound-unlock overlay with icon
Onur Solmaz88ff399 -
feat(web): auto-start on page load, unlock audio on first gesture
Onur Solmazb29a11c
-
fix(web): cycle idle thoughts as a shuffled bag
Onur Solmaz39a359c -
feat(web): orbital deck scene, english chat with droid-speak mapping, emotion gestures, jaw fix
Onur Solmazf54389e -
feat: the droid mind - tiny chat LLM trained in-repo, pure-rust inference in wasm
Onur Solmaz2344a01 -
fix: satisfy newer clippy lint and place the three moons in frame
Onur Solmaz93ea627 -
feat!: 3d stage with the assembled robot and autonomous droid babble on wasm
Onur Solmaz864f953 -
feat: quality gates, full branch coverage, and per-package checks
Onur Solmaz484f433 -
feat: typescript synthesis core, web app with animated duck, and docs
Onur Solmaz8aa3e04