Math3D is an interactive educational platform designed to visualize complex mathematical concepts using 3D graphics. Built with React, TypeScript, and React Three Fiber, it offers an immersive way to explore Linear Algebra, Calculus, Probability, and Machine Learning.
- Interactive 3D Visualizations: Rotate, zoom, and interact with mathematical objects.
- Topic-Based Organization: Structured curriculum covering key mathematical fields.
- Responsive Design: Accessible on desktop and mobile devices.
- Performance Optimized: Uses WebGL for high-performance rendering.
- Node.js (v18 or higher recommended)
- npm or pnpm
-
Clone the repository:
git clone <repository-url> cd math3d
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open your browser at
http://localhost:5173.
src/
├── components/ # UI components (Sidebar, Layout, etc.)
│ └── 3d/ # Shared 3D components (Arrow, Axis, Label)
├── data/ # Topic definitions and static data
├── scenes/ # 3D visualization scenes grouped by topic
│ ├── linear-algebra/
│ ├── calculus/
│ ├── probability/
│ └── ml/
├── App.tsx # Main application entry point
└── index.css # Global styles and themes
- Vite: Fast build tool and dev server.
- React: UI library.
- React Three Fiber (R3F): React renderer for Three.js.
- Three.js: 3D graphics library.
- TypeScript: Static typing for safer code.
- Tailwind CSS / CSS Modules: (Inferred usage based on class names, though
index.csssuggests custom CSS).
Please refer to AGENTS.md for coding standards and architectural guidelines.
- Fork the project.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
This project is licensed under the MIT License.