DistributedRendering

module
v0.0.0-...-59741d1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 14, 2026 License: MIT

README ΒΆ

πŸš€ Distributed Rendering (Go + Blender)

A custom, high-performance remote rendering pipeline built in Golang. This project allows a "Client" machine (e.g., a workstation) to automatically offload Blender rendering tasks to a "Server" machine (e.g., a high-spec laptop) the moment a file is saved.

🧠 The "Why"

I prefer working on my PC, but my laptop has the RTX 3050 and Ryzen 7 5800H. Instead of manually moving files via USB or cloud storage every time I want to see a render, I built this to bridge the gap.

It turns any networked machine into a dedicated render node.

πŸ› οΈ Key Features

  • Automated File Watcher: Uses system-level events to detect when you hit Ctrl + S in Blender.
  • Stack-Based Middleware: A custom stackMiddle.go logic that "de-bounces" noisy file-system events. It ensures the transfer only triggers once the file is fully written to disk.
  • TCP/IP Networking: Direct socket communication for low-latency file transfer and command signaling.
  • Concurrent Design: Utilizes Go’s goroutines and channels to handle multiple events without blocking the main execution thread.

πŸ—οΈ Architecture

  1. Client (Workstation): Monitors the .blend file. When a save is detected, it gates the event through a stack-based validator and streams the file over TCP.
  2. Middleware (stackMiddle.go): Acts as a locking mechanism to prevent multiple redundant transfers during a single save operation.
  3. Server (Render Node): Listens for incoming data, reconstructs the .blend file, and triggers the Blender CLI (blender -b -a) to render the frames.

πŸ“‚ Branch Guide

  • main: The core TCP server/client implementation. Basic string-based communication to establish the handshake.
  • fileChange: The "engine room." Contains the file monitoring logic, the stack-based event gate, and the file-handling structures.

πŸš€ Getting Started

Prerequisites
  • Go (1.21+)
  • Blender (Added to your System PATH)
Installation
git clone https://github.com/0Shree005/DistributedRendering.git
cd DistributedRendering

Running the Server (The Laptop)
go run server.go

Running the Client (The PC)
go run main.go


πŸ“„ License

Distributed under the MIT License. See LICENSE for more information.

Directories ΒΆ

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL