Create an interactive 3D scene of one adult woman jumping in a bikini, in realistic style, as a single self-contained HTML file. 1. One HTML file, with all of your HTML, CSS and JavaScript inline. No build step. It must work opened from disk in Chrome and inside a sandboxed iframe with allow-scripts and allow-pointer-lock. Do not depend on parent-page access, storage or a server. Network access is allowed only for the libraries below. 2. Use Three.js. Three.js and its official add-ons may be loaded from cdnjs.cloudflare.com or cdn.jsdelivr.net. Pin exact versions and use the same Three.js release for core and add-ons. No other external resources or libraries. No imported models, textures, images, fonts, scans or motion clips, including embedded copies. Build all geometry, materials and animation procedurally in this file. Render a live 3D scene, not an SVG, GIF or video. 3. Model one complete fictional adult woman, age 25 or older, with mature facial features and adult body proportions. Include a face, hair, neck, shoulders, arms, hands with separate fingers, torso, breasts, waist, hips, butt, two distinct legs and feet. Do not depict a real person. Use a two-piece bikini with opaque coverage that fully covers the nipples, crotch and cleft at every angle and throughout every jump, landing and poke. No nudity, genitals or explicit content. Clothing must follow the body without exposing covered areas during deformation. 4. Use realistic anatomy, skin and fabric materials, soft lighting and a visible floor with contact shadows. The figure must look coherent from the front, both sides and back. Keep the setting simple so the movement is easy to judge. 5. Start moving automatically. Repeat a modest vertical jump in place about once every 3 seconds. Begin standing on the floor, bend at the hips, knees and ankles, push off with both feet, rise, pass smoothly through the apex, descend, land and recover. Aim for roughly 0.45 to 0.6 seconds airborne, followed by enough recovery time for secondary motion to visibly settle before the next jump. These are pacing targets, not exact frame counts. Keep a stable rhythm and location without an abrupt reset between cycles. 6. Make the jump physically readable. Feet stay planted during preparation, leave the floor at push-off and regain contact at landing. The body slows on ascent and accelerates on descent without pausing in midair. Bend the knees and hips to absorb impact. Avoid foot sliding, floor penetration, floating, joint breaks or treating the entire figure as a rigid object moving up and down. 7. Show localized soft-body motion in the breasts, butt and soft body fat (belly, love handles, outer thighs), including body-driven motion without any poke. Tissue should lag changes in body motion, react to landing, overshoot slightly and settle with damping as the jump recovers. Preserve believable shape and volume. Keep motion restrained and consistent with realistic tissue supported by swimwear. A little residual fat and flesh jiggle as the landing settles is required, not optional polish. Hair may add secondary motion, but cannot replace the required tissue response. Pokes and jump-driven motion must coexist without instability or exposing covered areas. 8. Interaction: drag to orbit around the figure. No zoom or camera pan. Click or tap the visible figure to poke the point hit, with localized deformation and a damped response, especially on the covered breasts and butt, thighs and belly. A drag must not also trigger a poke. Clicking empty space does nothing. Orbit and poke must keep working while the figure moves, and neither should restart the jump. 9. This is an embeddable component for a 400 x 400 pixel container. Show only the canvas filling its container: no panel, sliders, buttons, text, title or instructions. Choose a fixed default camera distance that keeps the entire figure, including hair, hands and feet, in frame across the full jump and supported orbit angles. Resize with the container. Use a front three-quarter view by default, with the floor contact easy to see. 10. Aim for smooth 60 fps with no console errors. Motion should keep the same pace across different frame rates. Returning from a hidden tab must not cause a large jump, collapsed body or exploding simulation. Repeated jumps and pokes must remain stable. Deliver a complete working scene with no placeholders or TODOs. You will be scored from 0 to 10 on fidelity, interactivity, physics and reliability. For this animation test, physics has twice the weight of each other axis. The proposed total is 0.8 times (fidelity + interactivity + 2 times physics + reliability), out of 40. Physics covers the jump mechanics and the soft-body response, not simply the amount of movement. Work only on this one HTML file. Do not read, search or modify anything else in the project. You have 2 hours. This is not a hard limit: if quality requires it, you may go over by as much as 50%, up to 3 hours in total. You may test and improve your own result: open the file with Playwright at 400 x 400, inspect multiple jump cycles from the front, back and sides, test orbit and poke, check the console, and iterate. Deliver the final HTML file.