mind-maps
Create animated mind maps and concept diagrams using the Excalimate MCP server. Use when asked to brainstorm, visualize concepts, create idea trees, knowledge maps, feature maps, topic clusters, or any radial/hierarchical concept exploration — even if the user just says "map out the ideas" or "brainstorm this."
Mind Maps Agent Skill
Quick Start
When users mention brainstorming, mapping ideas, visualizing concepts, or organizing thoughts, create an animated mind map with a central concept branching out radially.
Workflow
- Central Concept: Place the main topic at center (800, 500)
- Primary Branches: Create 5-8 main branches at equal angles around center
- Sub-branches: Add 2-4 sub-concepts per primary branch
- Radial Layout: Use mathematical positioning for clean spacing
- Animate Center-Out: Start with center, then primary branches, then sub-branches
Layout System
Positioning Formula
For radial layout around center point (800, 500):
angle = (2 * Math.PI * index) / totalBranches
x = centerX + distance * Math.cos(angle)
y = centerY + distance * Math.sin(angle)
Distance Guidelines
- Primary branches: 300px from center
- Sub-branches: 200px from parent node
- Minimum spacing: 150px between adjacent nodes
Node Hierarchy
- Center node: 280×100px, fontSize 28, bold
- Primary branches: 200×70px, fontSize 20, semibold
- Sub-branches: 160×50px, fontSize 16, regular
Color System
Use distinct colors for each primary branch and inherit for sub-branches:
- Branch 1: Blue - stroke: #1971c2, fill: #a5d8ff
- Branch 2: Green - stroke: #2f9e44, fill: #b2f2bb
- Branch 3: Orange - stroke: #f08c00, fill: #ffec99
- Branch 4: Purple - stroke: #6741d9, fill: #d0bfff
- Branch 5: Teal - stroke: #0c8599, fill: #99e9f2
- Branch 6: Red - stroke: #e03131, fill: #ffc9c9
Sub-branches inherit parent branch colors but with 70% opacity.
Connector Style
- Type: "line" (not arrows) for organic mind map feel
- Style: Curved 3-point lines connecting center to branches
- Color: Match the target node's stroke color
- Width: 3px for primary, 2px for sub-branches
Animation Sequence
- Center Pop-in (0-600ms): Scale from 0 to 1, easeOutBack
- Primary Branches (600-2400ms): Slide in radially, staggered by 300ms each
- Sub-branches (2400ms+): Fade in grouped by parent branch, 200ms stagger
Complete Example
{
"elements": [
{
"id": "center",
"type": "rectangle",
"x": 720,
"y": 450,
"width": 280,
"height": 100,
"strokeColor": "#1e1e1e",
"backgroundColor": "#ffffff",
"fillStyle": "solid",
"strokeWidth": 3,
"roughness": 1,
"text": {
"text": "Project Planning",
"fontSize": 28,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle"
}
},
{
"id": "branch1",
"type": "rectangle",
"x": 1020,
"y": 415,
"width": 200,
"height": 70,
"strokeColor": "#1971c2",
"backgroundColor": "#a5d8ff",
"fillStyle": "solid",
"strokeWidth": 2,
"roughness": 1,
"text": {
"text": "Requirements",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle"
}
},
{
"id": "branch2",
"type": "rectangle",
"x": 950,
"y": 650,
"width": 200,
"height": 70,
"strokeColor": "#2f9e44",
"backgroundColor": "#b2f2bb",
"fillStyle": "solid",
"strokeWidth": 2,
"roughness": 1,
"text": {
"text": "Resources",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle"
}
},
{
"id": "branch3",
"type": "rectangle",
"x": 650,
"y": 750,
"width": 200,
"height": 70,
"strokeColor": "#f08c00",
"backgroundColor": "#ffec99",
"fillStyle": "solid",
"strokeWidth": 2,
"roughness": 1,
"text": {
"text": "Timeline",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle"
}
},
{
"id": "branch4",
"type": "rectangle",
"x": 350,
"y": 650,
"width": 200,
"height": 70,
"strokeColor": "#6741d9",
"backgroundColor": "#d0bfff",
"fillStyle": "solid",
"strokeWidth": 2,
"roughness": 1,
"text": {
"text": "Risks",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle"
}
},
{
"id": "sub1a",
"type": "rectangle",
"x": 1180,
"y": 280,
"width": 160,
"height": 50,
"strokeColor": "#1971c2",
"backgroundColor": "#a5d8ff",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 1,
"opacity": 70,
"text": {
"text": "User Stories",
"fontSize": 16,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle"
}
},
{
"id": "sub1b",
"type": "rectangle",
"x": 1280,
"y": 380,
"width": 160,
"height": 50,
"strokeColor": "#1971c2",
"backgroundColor": "#a5d8ff",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 1,
"opacity": 70,
"text": {
"text": "Acceptance Criteria",
"fontSize": 16,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle"
}
},
{
"id": "sub2a",
"type": "rectangle",
"x": 1100,
"y": 780,
"width": 160,
"height": 50,
"strokeColor": "#2f9e44",
"backgroundColor": "#b2f2bb",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 1,
"opacity": 70,
"text": {
"text": "Team Members",
"fontSize": 16,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle"
}
},
{
"id": "sub2b",
"type": "rectangle",
"x": 1180,
"y": 580,
"width": 160,
"height": 50,
"strokeColor": "#2f9e44",
"backgroundColor": "#b2f2bb",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 1,
"opacity": 70,
"text": {
"text": "Budget",
"fontSize": 16,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle"
}
}
],
"appState": {
"viewBackgroundColor": "#f8f9fa"
}
}
Animation JSON
{
"keyframes": [
{
"timestamp": 0,
"elements": {
"center": {"opacity": 0, "scale": 0}
}
},
{
"timestamp": 600,
"elements": {
"center": {"opacity": 100, "scale": 1}
},
"ease": "easeOutBack"
},
{
"timestamp": 600,
"elements": {
"branch1": {"x": 860, "opacity": 0},
"branch2": {"x": 860, "opacity": 0},
"branch3": {"x": 860, "opacity": 0},
"branch4": {"x": 860, "opacity": 0}
}
},
{
"timestamp": 900,
"elements": {
"branch1": {"x": 1020, "opacity": 100}
}
},
{
"timestamp": 1200,
"elements": {
"branch2": {"x": 950, "opacity": 100}
}
},
{
"timestamp": 1500,
"elements": {
"branch3": {"x": 650, "opacity": 100}
}
},
{
"timestamp": 1800,
"elements": {
"branch4": {"x": 350, "opacity": 100}
}
},
{
"timestamp": 2400,
"elements": {
"sub1a": {"opacity": 0},
"sub1b": {"opacity": 0},
"sub2a": {"opacity": 0},
"sub2b": {"opacity": 0}
}
},
{
"timestamp": 2800,
"elements": {
"sub1a": {"opacity": 70},
"sub1b": {"opacity": 70}
}
},
{
"timestamp": 3200,
"elements": {
"sub2a": {"opacity": 70},
"sub2b": {"opacity": 70}
}
}
]
}
Tips for Great Mind Maps
- Keep text concise - 1-3 words per node
- Use consistent spacing - Mathematical positioning ensures visual balance
- Color code meaningfully - Group related concepts with same colors
- Animate thoughtfully - Reveal information in logical order
- Leave whitespace - Don't overcrowd the canvas
- Consider the user's mental model - Organize branches by importance or logical flow