A Three.js-based 3D classroom environment with AI-powered LaTeX conversion and collaborative learning features.
I'm building a 3D classroom in Three.js using .glb models. The classroom has three main interactive areas that create an immersive educational experience:
Educators can upload materials here. A key feature is the ability to scan handwritten barebones proofs or notes. AI will process these, recognize the handwriting, and automatically generate a polished, rigorous LaTeX version. Educators can then publish these as PDFs or study materials within minutes, making them accessible to students directly on the 3D shelf.
Functions like an Ed-style Q&A forum. Both students and educators can post questions, answers, and discussions, making it a collaborative learning space.
Acts as an integration point with scheduling tools like Calendly or Zoom. Students can use it to book office hours, tutoring sessions, or group meetings with educators.
The core feature of the project is the LaTeX pipeline: educators upload handwritten notes, and the AI transforms them into rigorously formatted LaTeX documents that can be published in under five minutes. This enables a seamless workflow from handwritten draft to professional study material.
- Upload โ Educator scans handwritten notes
- Process โ AI recognizes handwriting and extracts content
- Convert โ Generate polished LaTeX with proper formatting
- Publish โ Create PDF and make available on 3D bookshelf
- Access โ Students interact with materials in immersive 3D environment
The project is organized into four main components that work together to create the complete 3D classroom experience:
Three.js-based 3D classroom interface with interactive areas:
- Classroom Components: 3D scene rendering, camera controls, and interaction systems
- Bookshelf: Material upload interface, AI processing pipeline, and LaTeX document management
- Bulletin Board: Q&A forum with posts, comments, and moderation features
- Desk: Scheduling integration with Calendly/Zoom for office hours and meetings
Node.js/Express server handling core functionality:
- File Processing: Upload handling, image preprocessing for AI analysis
- AI Services: Handwriting recognition and LaTeX conversion pipeline management
- PDF Generation: LaTeX compilation and document publishing
- Authentication: User management and session handling
- API Controllers: RESTful endpoints for all classroom features
Data persistence layer for all classroom data:
- Migrations: Database schema versioning and updates
- Seeds: Initial data and test fixtures
- Models: User data, study materials, forum posts, scheduling information
Specialized microservices for advanced functionality:
- Handwriting Recognition: AI model integration for text extraction from images
- LaTeX Conversion: Document formatting, validation, and compilation
- External Integrations: Calendly, Zoom, Google Calendar API connections
The revolutionary core feature that transforms handwritten content into professional documents:
- Upload: Educators scan handwritten notes/images using the 3D bookshelf interface
- Recognition: AI processes handwriting and extracts mathematical formulas and text
- Conversion: Automatic LaTeX formatting with proper mathematical notation
- Publishing: Generate professional PDFs and publish to classroom bookshelf
- Access: Students interact with materials directly in the immersive 3D environment
- 3D Bookshelf: Browse, search, and access AI-generated study materials in an immersive 3D interface
- Bulletin Board: Collaborative Q&A forum with real-time discussions and peer learning
- Virtual Desk: Seamless scheduling integration for office hours, tutoring, and group meetings
- 5-Minute Publishing: From handwritten draft to professional study material in under 5 minutes
- Real-time Collaboration: Instant access to materials and discussions
- Cross-platform Access: Works on desktop, tablet, and mobile devices
- Frontend: Three.js, React, TypeScript
- Backend: Node.js, Express, TypeScript
- Database: PostgreSQL with Prisma ORM
- AI/ML: Python services for handwriting recognition
- LaTeX: TeX Live for document compilation
- Deployment: Node.js with PM2 process management
HTN/
โโโ frontend/ # Three.js 3D classroom interface
โ โโโ src/
โ โ โโโ components/
โ โ โ โโโ classroom/ # 3D scene and interactions
โ โ โ โโโ bookshelf/ # Material management
โ โ โ โโโ bulletin/ # Q&A forum
โ โ โ โโโ desk/ # Scheduling interface
โ โ โโโ utils/ # Helper functions
โ โ โโโ assets/ # 3D models, textures, audio
โ โ โโโ styles/ # CSS and styling
โ โโโ public/ # Static assets
โโโ backend/ # Node.js server
โ โโโ src/
โ โ โโโ controllers/ # API route handlers
โ โ โโโ services/ # Business logic
โ โ โโโ models/ # Data models
โ โ โโโ middleware/ # Auth, validation, etc.
โ โ โโโ routes/ # API endpoints
โ โ โโโ utils/ # Server utilities
โ โโโ uploads/ # File storage
โ โโโ temp/ # Temporary processing files
โโโ database/ # Data persistence
โ โโโ migrations/ # Schema changes
โ โโโ seeds/ # Test data
โโโ apis/ # Microservices
โ โโโ handwriting-recognition/ # AI text extraction
โ โโโ latex-conversion/ # Document formatting
โ โโโ external-integrations/ # Third-party APIs
โโโ docs/ # Documentation
โโโ scripts/ # Setup and deployment
โโโ tests/ # Test suites
-
Setup Environment
./scripts/setup/install-dependencies.sh
-
Start Services
# Start PostgreSQL and Redis brew services start postgresql redis # macOS # or sudo systemctl start postgresql redis # Linux
-
Configure Database
npm run db:migrate npm run db:seed
-
Start Development
npm run dev
-
Access Application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- AI Services: http://localhost:5000-5002
- Database: localhost:5432
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
MIT License - see LICENSE file for details