A full-stack web application for distributed Blender rendering with user authentication and queued job execution.
RenderNet is a full-stack project demonstrating backend system design, job scheduling, and process automation using Blender's CLI. The application allows authenticated users to submit rendering jobs, manages them through a queue-based architecture, and delivers rendered outputs through a web interface.
- Upload and render
.blendfiles remotely - User authentication using JWT
- Centralized job queue with status tracking
- Download rendered frames as ZIP archives
- Admin-level access for user and job management
- Automatic cleanup of uploaded and rendered files (48-hour retention)
- Node.js
- Express.js
- JWT-based authentication
- Multer for file uploads
- Blender CLI for rendering
- Background worker for job execution
- Vanilla JavaScript (no framework)
- HTML + CSS (dark theme)
- REST API integration
- Node.js v16 or later
- Blender installed and accessible via system PATH
- npm or yarn
-
Clone the repository
git clone https://github.com/Vishrut2403/RenderNet.git cd RenderNet -
Install backend dependencies
cd backend npm install -
(Optional) Install frontend dependencies
cd ../frontend npm install -
Environment configuration
Create a
.envfile inside thebackenddirectory:PORT=5500 JWT_SECRET=your-secret-key
-
Start the backend server
cd backend npm start -
Serve the frontend
You may open
frontend/index.htmldirectly in a browser, or serve it locally:cd frontend npx http-server -p 8080
- Create a user account
- Log in to obtain an authentication token
- Upload a
.blendfile and specify the frame range - Monitor job status via the dashboard
- Download completed renders as a ZIP file
- Blender CLI–based render execution
- Queue-based job scheduling
- JWT authentication and role-based access
- Background worker for render jobs
- GPU-based rendering configuration
- Automatic cleanup of stale files
- Improved job progress tracking
- Multi-worker scalability support
- Distributed rendering across multiple nodes
- WebSocket-based real-time job updates
This project was developed as an individual portfolio project. Feedback and suggestions are welcome.