A real-time raytracing engine built with Node.js, Express, and Socket.IO. This project implements a basic raytracer that can render 3D scenes in real-time through a web interface.
- Real-time raytracing through web interface
- Support for basic 3D primitives
- Lighting and shading capabilities
- WebSocket-based rendering progress updates
- PNG image output
core/- Core raytracing engine componentsshader/- Shading and material implementationscommon/- Common utilities and math functionsimage/- Image processing and outputlight/- Lighting implementationsprimitive/- 3D primitive objectsrenderer/- Main rendering engine
public/- Static web assetsmain.js- Express server and WebSocket setup
- Express 3.1.0
- Socket.IO 0.9.13
- pngjs 0.4.0-alpha
- Clone the repository
git clone https://github.com/yourusername/raytracer_nodejs.git cd raytracer_nodejs - Install dependencies:
npm install
- Start the server:
node main.js
- Open your browser to
http://localhost:8080
- Access the web interface at
http://localhost:8080 - Configure your scene parameters
- Click render to start the raytracing process
- View the real-time rendering progress
- Save the final rendered image
We welcome contributions! Please see our Contributing Guidelines for details.
This project is licensed under the MIT License - see the LICENSE file for details.
- Thanks to all contributors who have helped shape this project
- Inspired by classic raytracing techniques and modern web technologies