Back to Diagram Animation Editor

README

Diagram Animation Editor

A powerful 3D diagram animation editor for creating animated architecture diagrams and system visualizations. Built with React, Three.js, and TypeScript.

Diagram Animation Editor

3D Isometric Views

CI/CD PipelineKubernetes Cluster
CI/CDKubernetes
Saga PatternMicroservices
SagaMicroservices

Features

Diagram Creation

  • Node Types: Database, Server, Cloud, API, Lambda, Storage, Queue, CDN, Load Balancer, Container, User, SNS, and basic shapes
  • Edge Types: Straight, Bezier, and Orthogonal connections
  • Cloud-style Isometric View: Cloudcraft-inspired 3D isometric rendering
  • 2D/3D Toggle: Switch between top-down and isometric views

Animation System

  • Timeline Editor: Visual timeline for keyframe-based animations
  • Animatable Properties: Position, opacity, scale, rotation, fill color, flow progress
  • Flow Animations: Animated data flow along edges
  • Easing Functions: Linear, ease-in, ease-out, ease-in-out

Animation Presets

Reusable animation sequences for common patterns:

CategoryPresets
EntranceFade In, Scale In, Slide In, Drop In
EmphasisPulse, Shake, Glow
ExitFade Out, Scale Out
FlowFlow Progress, Flow Pulse
SequenceCascade Reveal, Simultaneous Reveal, Highlight Path

Presentation Mode

  • Step Mode: Pause at each page, advance with click/Space/Enter
  • Continuous Mode: Auto-play through all pages
  • Camera Follow: Camera tracks the active animation
  • Keyboard Controls: Full keyboard navigation
  • Page Indicators: Visual progress through presentation

Built-in Templates

Pre-built architecture diagrams ready to use:

#### Simple Templates

  • Basic Web App
  • Load Balancer
  • Cache Pattern
  • Pub/Sub
  • API Gateway
  • Serverless
#### Advanced Templates
  • Saga Pattern (Distributed Transactions)
  • Message Queue (Event-Driven Architecture)
  • Database Transactions (ACID & Replication)
  • Event Sourcing (CQRS Pattern)
  • Microservices (Service Mesh)
  • Circuit Breaker (Resilience Pattern)
  • Shadow Proxy (Migration Pattern)
  • CI/CD Pipeline
  • Kubernetes Cluster
  • Event-Driven Architecture
  • Data Pipeline (ETL/ELT)

Documentation

For a detailed walkthrough with screenshots, see the User Guide.

Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation

bash
# Clone the repository
git clone https://github.com/jonathanleahy/pres-networking.git
cd pres-networking

# Install dependencies
cd frontend
npm install

# Start development server
npm run dev

The application will be available at http://localhost:3001

Building for Production

bash
npm run build

Keyboard Shortcuts

General

KeyAction
?Show keyboard shortcuts help
Cmd/Ctrl + KOpen command palette
Cmd/Ctrl + Shift + AOpen animation templates

Playback

KeyAction
SpacePlay/Pause animation
HomeGo to start
EndGo to end
Left ArrowStep backward
Right ArrowStep forward

Presentation Mode

KeyAction
Space/EnterAdvance to next step
Left ArrowPrevious page
MToggle step/continuous mode
ESCExit presentation

View

KeyAction
2Switch to 2D view
3Switch to 3D isometric view
GToggle grid
TToggle theme (dark/light)

Editing

KeyAction
Delete/BackspaceDelete selected
Cmd/Ctrl + ZUndo
Cmd/Ctrl + Shift + ZRedo
Cmd/Ctrl + CCopy
Cmd/Ctrl + VPaste

Project Structure

shell
frontend/
├── src/
│   ├── components/
│   │   ├── canvas/          # 3D canvas and node rendering
│   │   ├── presentation/    # Presentation mode components
│   │   ├── timeline/        # Timeline editor
│   │   └── ui/              # UI components
│   ├── stores/              # Zustand state management
│   ├── hooks/               # Custom React hooks
│   ├── types/               # TypeScript types
│   └── utils/               # Utilities and templates
├── public/
└── package.json

Technology Stack

  • React 18 - UI framework
  • Three.js - 3D rendering
  • React Three Fiber - React renderer for Three.js
  • React Three Drei - Useful helpers for R3F
  • Zustand - State management
  • TypeScript - Type safety
  • Tailwind CSS - Styling
  • Vite - Build tool

Usage Examples

Creating a Diagram from Template

  • Click Templates in the sidebar
  • Select a template (e.g., "API Gateway")
  • The diagram loads with pre-configured nodes, edges, and animations
  • Starting a Presentation

  • Click the Present button in the toolbar
  • Use Space or Click to advance through steps
  • Press M to switch between step and continuous mode
  • Press ESC to exit
  • Creating Custom Animations

  • Select a node or edge
  • Open the Properties panel
  • Click Add Animation and choose a preset
  • Adjust timing in the timeline editor
  • Contributing

  • Fork the repository
  • Create a feature branch (git checkout -b feature/amazing-feature)
  • Commit your changes (git commit -m 'Add amazing feature')
  • Push to the branch (git push origin feature/amazing-feature)
  • Open a Pull Request
  • License

    This project is licensed under the MIT License - see the LICENSE file for details.

    Acknowledgments

    © 2026 Jonathan Leahy · v0.8.1-31-g196fa14