BlenderGrid is a distributed 3D model rendering farm designed to help creators render their models without the need for high-end local resources. It uses a server-client-node architecture to split, distribute, render, upscale, and reassemble 3D model pieces efficiently.
- Built with Python Flask and the Blender API.
- Responsibilities:
- Accepts 3D models uploaded by clients.
- Breaks models into smaller pieces based on different meshes.
- Manages a pool of Node Servers.
- Distributes model pieces to available nodes one at a time (ensuring efficient resource usage).
- Collects rendered and upscaled pieces from nodes.
- Recombines all pieces into the final high-quality rendered output.
- A web platform built using Next.js.
- Target Users:
- 3D artists and designers who want their models rendered but lack the necessary local resources.
- Features:
- Easy model upload interface.
- Tracking progress of rendering.
- Downloading the final rendered model once completed.
- Mini servers equipped with rendering capabilities.
- Each node:
- Runs an autonomous Python script.
- Listens for new rendering tasks from the server.
- Renders the assigned piece (images/videos/textures/shaders).
- Performs optional upscaling to enhance quality.
- Sends the rendered piece back to the server.
- No manual intervention required on the nodes after setup.
- Client uploads a
.glbor compatible 3D model file via the web app. - Server processes and splits the model into smaller mesh-based pieces.
- Pieces are queued and sent one-by-one to free Nodes.
- Nodes render and upscale their assigned pieces.
- Server collects all rendered pieces and recombines them.
- Client is notified and can download the final high-quality rendered model.
| Component | Technology |
|---|---|
| Server | Python, Flask, Blender API |
| Client | Next.js (React) |
| Nodes | Python, Blender API |
- Load balancing between nodes for even faster rendering.
- Client notifications via email or dashboard updates.
- Priority queues for urgent rendering tasks.
- Support for more file formats and rendering options.