A revolutionary visual infrastructure builder that lets you construct AWS cloud infrastructure using 3D Lego-style blocks. Drag, drop, connect, and watch your architecture come to life while generating production-ready Terraform code in real-time.
- 3D Lego Blocks: Each AWS service is represented as a unique Lego-style block
- Drag & Drop: Intuitive building experience with grid snapping
- Flat Panel Roads: Modern flat-style road connections between services
- Physical Stacking: AWS architecture-compliant infrastructure layering
- Interactive 3D Scene: Professional lighting, shadows, and camera controls
- Smart Stacking: Automatic VPC โ Subnet โ Service layer detection
- Road Network: Color-coded service communication paths
- AWS-Compliant: Follows real AWS infrastructure relationships
- Auto-Connections: Physical stacking creates infrastructure connections automatically
- Manual Roads: Service-level connections via interactive road building
- ๐ข EC2 - Office buildings for compute instances
- ๐ VPC - Network foundations
- ๐ฃ๏ธ Subnets - Highway segments for network isolation
- ๐ช S3 - Warehouses for object storage
- ๐๏ธ RDS - Database towers
- โ๏ธ ALB - Traffic light load balancers
- ๐ก๏ธ Security Groups - Guard posts for security
- โก Lambda - Function boxes for serverless
- ๐ช API Gateway - Gateway arches for APIs
- Terraform HCL: Production-ready infrastructure as code
- Monaco Editor: Professional code editing with syntax highlighting
- Real-time Generation: Code updates as you build
- Export Functionality: Download your Terraform files
- Keyboard Shortcuts: Professional workflow with hotkeys
- Property Editing: Configure AWS resource parameters
- Connection Management: Link services with visual feedback
- Help System: Interactive tutorials and guides
- Node.js 18+
- npm or yarn
-
Clone the repository
git clone <repository-url> cd 3d-lego-aws-builder
-
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
- Select Components: Click AWS service blocks from the left palette
- Drag & Drop: Place blocks in the 3D scene with automatic grid snapping
- Physical Stacking: Stack components following AWS architecture (VPC โ Subnet โ EC2/SG/LB)
- Road Connections: Use connection mode for service communications (EC2 โ Security Group, EC2 โ EBS)
- Configure Properties: Use the right panel to edit resource parameters
- ๐๏ธ Physical Stacking (Infrastructure Layers):
- VPC (Foundation) โ Subnet โ EC2, Security Group, Load Balancer
- Automatic connections created when stacking
- ๐ฃ๏ธ Road Connections (Service Communications):
- EC2 โ Security Group (access control)
- EC2 โ EBS Volume (storage attachment)
- Load Balancer โ EC2 (traffic distribution)
- Load Balancer โ Security Group (security rules)
- Flat Panel Roads: Modern flat-style roads instead of cylindrical
- Color-coded: Different colors for different connection types
- Auto-detection: Physical stacking automatically creates infrastructure connections
- Manual Roads: Service connections require manual road creation
Delete
- Remove selected componentEscape
- Deselect all componentsCtrl + G
- Generate Terraform codeCtrl + Shift + C
- Clear entire workspaceF1
- Show help and tutorials
- Real-time Updates: Terraform code generates automatically
- Export: Click the download button to save
.tf
files - Validation: Built-in syntax checking and best practices
- React 18 - Modern UI framework
- Three.js + React Three Fiber - 3D graphics and interactions
- TypeScript - Type-safe development
- Zustand - Lightweight state management
- Monaco Editor - Professional code editing
- Tailwind CSS - Utility-first styling
- Vite - Fast development and building
src/
โโโ components/
โ โโโ three/ # 3D scene components
โ โ โโโ BaseLegoBlock.tsx
โ โ โโโ ConnectionLine.tsx
โ โ โโโ Scene.tsx
โ โโโ ui/ # User interface components
โ โโโ BlockPalette.tsx
โ โโโ CodeEditor.tsx
โ โโโ PropertyPanel.tsx
โ โโโ Toolbar.tsx
โ โโโ StatusBar.tsx
โโโ hooks/ # Custom React hooks
โโโ store/ # State management
โโโ types/ # TypeScript definitions
โโโ utils/ # Utility functions
- Define the service in
types/infrastructure.ts
- Create block template in
utils/blockTemplates.ts
- Add Terraform generation logic in
store/infrastructureStore.ts
- Lego colors defined in
tailwind.config.js
- 3D materials and lighting in
components/three/
- UI components use Tailwind utility classes
npm run dev
- Start development servernpm run build
- Build for productionnpm run preview
- Preview production buildnpm run lint
- Run ESLint
# Run unit tests
npm run test
# Run tests with coverage
npm run test:coverage
- ๐ Import Terraform - Load existing
.tf
files - ๐ Multi-Region Support - Global infrastructure visualization
- ๐ฐ Cost Estimation - Real-time AWS pricing
- โ Validation - Infrastructure best practices checking
- ๐ต Sound Effects - Audio feedback for interactions
- ๐ฑ Mobile Support - Touch-friendly interface
- Team Collaboration - Real-time multi-user editing
- Version Control - Infrastructure change tracking
- Templates - Pre-built architecture patterns
- Integration - CI/CD pipeline connections
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes and test thoroughly
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to your branch:
git push origin feature/amazing-feature
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Three.js Community - For excellent 3D web graphics
- AWS - For comprehensive cloud services
- LEGO Group - For inspiring the block-based design concept
- Terraform - For infrastructure as code innovation
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Wiki
Built with โค๏ธ by developers who believe infrastructure should be as fun as playing with LEGO blocks!