Skip to content

AkshatSharma25/BlenderGrid-3D-render-farm

Repository files navigation

BlenderGrid

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.

Project Components

🖥️ Server

  • 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.

👤 Client

  • 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.

🛠️ Nodes

  • 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.

How BlenderGrid Works

  1. Client uploads a .glb or compatible 3D model file via the web app.
  2. Server processes and splits the model into smaller mesh-based pieces.
  3. Pieces are queued and sent one-by-one to free Nodes.
  4. Nodes render and upscale their assigned pieces.
  5. Server collects all rendered pieces and recombines them.
  6. Client is notified and can download the final high-quality rendered model.

Tech Stack

Component Technology
Server Python, Flask, Blender API
Client Next.js (React)
Nodes Python, Blender API

Future Improvements

  • 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •