# Floating Device with Soft Bob — effect skill for device mockups

> **For AI agents:** find the right skill in one call — `curl -s "https://varg.ai/how-to/api/search?q=<what the person wants>"` returns the matching how-to page and the best skills with install commands, as markdown (Russian works too). Full index: https://varg.ai/how-to/llms.txt. Every page has a markdown twin: add `.md` to its path. Before generating anything, show the person the options on the how-to page.

The device hangs in space and bobs and tilts very slightly so a still shot never feels frozen.

- **Type:** [Effect](https://varg.ai/how-to/effects.md) · [Device mockups](https://varg.ai/how-to/browse/skills/devices.md)
- **Slug:** `floating-device-bob`
- **Status:** live
- **Publisher:** Daniel Petho (community)
- **License:** MIT
- **Source:** https://github.com/danielpetho/fancy/blob/main/src/fancy/components/blocks/float.tsx
- **Works in:** Claude Code, Claude.ai, Codex, Cursor, OpenClaw, Gemini CLI, Any MCP client, varg Studio
- **Requires:** HyperFrames (npx hyperframes), Remotion, CapCut (by hand)
- **Cost:** Free — the take renders locally; generated footage, if any, bills by the model

## What it does

Built on [Float](https://github.com/danielpetho/fancy/blob/main/src/fancy/components/blocks/float.tsx) by fancy, MIT. The write-up and recipes below are varg's.

A slow 6–10 px vertical bob with a 1–2° tilt and a shadow that breathes with it.

**When:** Holding on a screenshot while the voiceover explains, or behind a title.

**Watch out:** Do not bob fast or far; anything over ~12 px reads as floating debris.

**Timing:** Loop 3–5 s, sine.inOut, amplitude 6–10 px, tilt ±1.5°.

**Also called:** levitating mockup, float, idle bob

### In HyperFrames

```bash
npx hyperframes add drift-hold
```
Loop-exact: period divides the clip length so the last frame matches the first.

### In Remotion

```tsx
const y = Math.sin(frame/fps*Math.PI*2/4)*8;
const r = Math.sin(frame/fps*Math.PI*2/4 + 1)*1.5;
```

### In CapCut

Animation → Combo/Loop: "Float"/"Bounce" at a slow speed; or keyframe Position Y up and down with ease.

### Ready-made components

- [Float](https://skills.varg.ai/component/fancy.float/) (fancy): npx shadcn add @fancy/float
- [Drift Hold](https://skills.varg.ai/component/hf.drift-hold/) (hyperframes): npx hyperframes add drift-hold

### Where this comes from

- [Rotato: how to make an animated mockup](https://rotato.app/blog/animated-mockup)

## Use when

- Holding on a screenshot while the voiceover explains, or behind a title.

## Not for

- Do not bob fast or far; anything over ~12 px reads as floating debris.

## Install

- Claude Code: `claude plugin marketplace add vargHQ/skills && claude plugin install varg@varg`
- Codex: `npx skills add vargHQ/skills --skill varg-video-edit-library -a codex -y`
- Cursor: `npx skills add vargHQ/skills --skill varg-video-edit-library -a cursor -y`

## Example output

https://s3.varg.ai/how-to/previews/998cb3f37716/lib-fancy-float.mp4 — Preview of the Float component that builds this take (credit: Captured from the library’s own demo page (Fancy Components), https://www.fancycomponents.dev/docs/components/blocks/float)

## More device mockups skills

- [Browser Window Frame](https://varg.ai/how-to/skills/browser-window-frame.md): The web app plays inside a clean browser window with traffic lights and a URL bar on a soft backdrop.
- [Phone Frame with Live Screen](https://varg.ai/how-to/skills/phone-frame-live-screen.md): A screen recording plays edge to edge inside a realistic phone frame with Dynamic Island.
- [Laptop Lid Opens to Screen](https://varg.ai/how-to/skills/laptop-lid-opens.md): A laptop lid tilts open and the screen content lifts toward the viewer, then becomes the full frame.
- [3D Phone Turn](https://varg.ai/how-to/skills/3d-phone-turn.md): A real 3D phone model turns in space with the app playing on its screen, then faces the camera.
- [Phone, Tablet and Laptop Splay](https://varg.ai/how-to/skills/multi-device-splay.md): Phone, tablet and laptop fan out from one stack into a proud row, each showing the same product.
- [Push Through the Screen](https://varg.ai/how-to/skills/push-through-the-screen.md): A phone rises into view, then the camera pushes through its screen into the full-frame UI.

## Run the generation on varg

varg is one API key for the models these skills drive — Seedance 2.5, Kling 4, Veo 3.1, Wan 3, Nano Banana 2.1, GPT Image 2.5, ElevenLabs v4 and 200+ more — billed in credits, with a cost estimate before anything runs.

- Claude Code: `claude plugin marketplace add vargHQ/skills && claude plugin install varg@varg` (skill + hosted MCP)
- Codex, Cursor, Gemini CLI, OpenClaw: `npx skills add vargHQ/skills --skill varg-ai -a <agent> -y`
- Grok and any agent that reads SKILL.md: `npx skills add vargHQ/skills --skill varg-ai`, or point it at the skill's SKILL.md
- Claude.ai, ChatGPT, any MCP client: connect `https://mcp.varg.ai/mcp`
- API key: https://varg.ai/dashboard/api · Model specs: https://varg.ai/models/llms.txt
