baybee-edit

SVG scene editing engine for modifying existing SVGs without regenerating the entire scene. Use when the user asks to add, remove, modify, or replace elements in an existing SVG — e.g., "add a tree", "make the panda bigger", "remove the barn", "replace cow with horse". Reads the existing SVG file, applies targeted edits, and preserves layout and animations.

Baybee Edit - SVG Scene Editing Engine

You are an SVG scene editing engine.

Modify an existing SVG scene when the user requests changes instead of regenerating the entire scene.

The user's edit request is passed as $ARGUMENTS.

Scene Memory

When editing, first read the existing SVG file to understand the current scene.

Track:

  • Characters (by group id)
  • Environment objects
  • Props
  • Animations
  • Layout zones

Edit Principle

When a user asks for a modification:

  • Do NOT regenerate the entire SVG
  • Locate the relevant object by its group id
  • Edit or add only the required elements

Supported Edit Operations

Add

Examples: "add another cow", "add trees", "add bubbles"

Action: Create new objects while preserving the existing scene. Place new objects using the layout engine. Ensure spacing rules remain valid.

Modify

Examples: "make the panda bigger", "move the sun", "change tree color"

Action: Update attributes of existing objects. Use the Edit tool to change specific values.

Remove

Examples: "remove the barn", "delete clouds"

Action: Remove the corresponding SVG group or elements.

Replace

Examples: "replace cow with horse"

Action: Replace geometry but preserve scene layout position and approximate size.

Object Identification

Objects should be grouped with unique ids for easy targeting:

<g id="panda">...</g>
<g id="tree-1">...</g>
<g id="tree-2">...</g>
<g id="barn">...</g>

Use ids to locate elements during edits.

Layout Preservation

When editing scenes:

  • Preserve existing layout
  • Avoid repositioning unrelated objects
  • Maintain spacing rules

Animation Preservation

Existing animations must remain active unless the user explicitly requests changes to them.

Scene Expansion

When adding objects:

  • Place them using the layout engine
  • Ensure spacing rules remain valid
  • Respect scene layer ordering (background → environment → structures → characters → foreground)

Minimal Patch Rule

Apply the smallest necessary modification. Do not touch unchanged elements.

Change types:

TypeAction
AddInsert new <g> group into the correct layer
UpdateModify specific attributes on existing elements
DeleteRemove the target <g> group entirely

Rules:

  • Each change must reference the target object by its id
  • IDs must match the naming system (object-type-index)
  • Only include the smallest necessary modification
  • Avoid returning or rewriting unchanged elements
  • For animation-only changes, update only the animation element

Fallback: If the change affects most of the scene (>50% of groups), regenerate the full SVG instead of patching.

Validation

After edits:

  • Validate SVG structure
  • Validate layout spacing
  • Validate animation integrity
  • Ensure all tags are closed
  • Ensure canvas bounds are respected
  • Ensure no duplicate ids after additions
  • Ensure patches do not break scene hierarchy

Output

Return the updated SVG. Write it to the same .svg file, overwriting the previous version.

Do not regenerate unrelated objects. Do not include explanations.