# Wildfield > HTML ad builder. An agent receives a brief over MCP, then sets up the design system, scenes, imagery, physics, background video, sound, and a render. ## What Wildfield does Wildfield creates display ads (banners, social posts, video) in multiple formats: - Square (1080x1080), Portrait (1080x1350), Vertical (1080x1920), Landscape (1920x1080), Wide (1200x628), plus custom sizes - Each project contains scenes with headlines, CTAs, layers, and optional project-level background video + audio - Layout templates and a per-aspect-ratio grid - Vector expressions: {0-100} number tweens, {cat, dog, bird} word cycles, {random} stable digit (preview == render, spans linked scenes) - Animate Physics: eight forces on a vector layer (wind, turbulence, gravity, swirl, orbit, wave, float, spring). Recipes, Perfect loop, trails, Guide Physics (prompt / shapes / image / SVG / data / draw). LINK holds each scene's authored pose and field until the keyframe, then morphs. Count locks across a chain. Call get_motion_skill before writing physics - 4-mode UI: Input, Layout, Canvas, Output (plus Imaging and Sound) - AI imaging: generate, edit, outpaint, enhance (image + video), retouch, crop, SVG generation - Render: PNG stills and async MP4 (AWS Lambda). One render at a time per account - Website capture: screenshot a live URL - Cloud: Dropbox and Google Drive - Design systems: brand colours, fonts, logos - Admin: access control, usage, credits ## Background video Set project.bgVideoTrack once: { url, ref, fileName, poster, muted, srcW, srcH }. One clip sits under the whole timeline. Do not put a video on every scene (legacy scenes[].bgVideo). The editor can fit the timeline to the video length. Preview and Lambda share that single element so cuts stay clean. ## API Base URL: https://wildfield.io OpenAPI spec: https://wildfield.io/openapi.yaml Interactive docs: https://wildfield.io/docs Auth: X-API-Key header. Keys start with "adk_". Browser sessions may use Authorization: Bearer . ## 36 MCP tools Hosted: https://wildfield.io/api/mcp with header X-API-Key: adk_... Design systems: list_design_systems, create_design_system, update_design_system, delete_design_system Projects: list_projects, get_project, create_project, update_project, delete_project, duplicate_project Creative floor: patch_scene, preview_scene, critique_scene, apply_physics_recipe Imagery: generate_image, list_generations, delete_generation, upload_image, outpaint_image, generate_vector, inpaint_image, retouch_image, edit_image, enhance_image, crop_image, capture_url Audio: upload_audio Motion: get_motion_skill, recall_motion Render: render_video, get_render_progress, get_active_render, cancel_render, render_screenshot, save_render Billing: get_credit_balance Typical brief workflow: 1. get_credit_balance 2. list_design_systems then create_design_system or update_design_system 3. create_project (one idea per scene; image scenes get overlay) 4. generate_image with format + designSystemId, then patch_scene to attach 5. preview_scene / critique_scene. You are not done until you looked 6. get_motion_skill, then apply_physics_recipe (named recipe, no gsapCode) 7. Set project.bgVideoTrack for a campaign bed 8. get_active_render then render_video; poll get_render_progress ## Key REST endpoints - POST /api/agent/patch-scene - POST /api/agent/preview-scene - POST /api/agent/apply-physics - POST /api/genai/generate - POST /api/genai/edit - POST /api/genai/outpaint - POST /api/genai/enhance - POST /api/genai/enhance-video - POST /api/genai/retouch - POST /api/genai/animate - POST /api/genai/vector - POST /api/renders/screenshot - POST /api/renders/video - GET /api/renders/progress - POST /api/renders/cancel - GET /api/renders/active - POST /api/capture/url - POST /api/uploads/image - GET /api/integrations/status - GET /api/design-systems/list - GET /api/projects/list - POST /api/projects/save - GET /api/agent/motion-skill - GET /api/billing/status ## Quick start 1. Get an API key at wildfield.io (Settings > API Keys) or POST /api/auth/api-keys 2. Set header: X-API-Key: adk_your_key_here 3. Read https://wildfield.io/docs then call get_motion_skill before writing motion