A collaborative 3D building platform designed for schools to facilitate digital building projects and team-based learning.
-
Start the Server
npm install npm start
-
Open Browser Navigate to
http://localhost:3000 -
Login as Teacher
- Enter your name
- Select "Teacher" role
- Click "Enter Platform"
-
Create a Project
- Click "Create New Project"
- Enter project name and assignment details
- Share the Room ID with students
-
Monitor and Guide
- Lock/unlock the room to control editing
- View student progress in real-time
- Chat with students
- Review submissions
-
Join the Platform
- Enter your name
- Select "Student" role
- Click "Enter Platform"
-
Join a Room
- Click on a project from the list, OR
- Enter the Room ID provided by your teacher
- Click "Join"
-
Build Together
- Place blocks to build your project
- Chat with teammates
- See everyone's cursor positions
- Submit your work when done
- Assignment System: Teachers can create assignments with descriptions and requirements
- Real-time Collaboration: Multiple students can build together simultaneously
- Progress Monitoring: Teachers can watch student progress in real-time
- Submission System: Students submit their work with comments
- Room Locking: Teachers can lock rooms to prevent changes during instruction
- Team Chat: Built-in chat for team coordination
- User Presence: See who's online and their role
- Remote Cursors: See where teammates are looking/pointing
- System Messages: Automatic notifications for joins, leaves, and actions
- 20+ Block Types: Bricks, slopes, trees, windows, doors, and more
- Multiplayer Sync: All block changes sync instantly
- Undo/Redo: Full history support (Ctrl+Z / Ctrl+Y)
- Color Palette: 24 colors for customization
- 3D Model Import: Support for .glb, .gltf, and .obj files
- Day/Night Cycle: Adjustable time of day
- Weather Effects: Rain and snow
- Themes: Dark and light mode
- Auto-rotate Camera: For presentations
- Export Build: Save your creation as JSON
- Import Build: Load previous saves
- Screenshots: Capture your work as PNG
- Node.js 14+ (for server)
- Modern Web Browser with WebGL support
- Network: All users must be on the same network or server must be publicly accessible
- Run the server on a classroom computer
- Find the server's IP address:
ipconfig(Windows) orifconfig(Mac/Linux) - Students access via:
http://[SERVER_IP]:3000
For remote learning, deploy to:
- Heroku:
git push heroku main - Railway: Connect GitHub repo
- AWS/GCP: Use EC2/Compute Engine
- Vercel: Not recommended (needs WebSocket support)
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD ["npm", "start"]docker build -t brickforge-pro .
docker run -p 8080:8080 brickforge-pro| Key | Action |
|---|---|
| B / Space | Place block |
| R | Rotate block |
| T | Build tool |
| E | Erase tool |
| P | Paint tool |
| S | Select tool |
| W | Toggle weather |
| A | Auto-rotate camera |
| G | Toggle grid |
| X | Toggle snap |
| H | Toggle help |
| Tab | Toggle UI |
| Ctrl+Z | Undo |
| Ctrl+Y | Redo |
| Ctrl+D | Duplicate selected |
| Delete | Delete selected |
BrickForgePro/
├── index.html # Main client application
├── server.js # WebSocket server
├── package.json # Dependencies
├── README.md # This file
└── .gitignore # Git ignore rules
- No Authentication: Current version uses simple name-based identification
- Room Isolation: Each room is separate; users can't access other rooms
- Teacher Controls: Only teachers can create rooms, lock rooms, clear blocks
- No Persistence: Rooms are deleted 5 minutes after all users leave
- Check firewall settings (port 8080)
- Verify all users are on the same network
- Check browser console for errors
- Update graphics drivers
- Enable hardware acceleration in browser
- Try a different browser (Chrome recommended)
The default port is 3000. To use a different port:
PORT=8080 npm start # Unix/Mac
set PORT=8080 && npm start # WindowsThis is an educational open-source project. Contributions welcome!
- User accounts and authentication
- Persistent room storage (database)
- Project templates
- Grading/rubric system
- Screen sharing for teachers
- Audio chat
- Mobile app
- VR support
MIT License - Free for educational use
- Three.js - 3D rendering
- WebSocket - Real-time communication
- Tailwind CSS - Styling
Built for educators who want to bring creativity into the classroom. 🎓✨