# Zordon Blender Add-on Submit the current Blender file to a Zordon render server from Blender's Render properties panel. ## Features - Submit the current `.blend` file directly to `POST /api/jobs`. - Choose a configured Zordon server from Blender. - Test the server connection before submitting. - Save the current file before upload. - Default job and output names to the `.blend` filename. - Use the current scene frame range, render resolution, FPS, and image format. - Select one or more cameras for submission. - Submit multiple selected cameras as camera-specific child jobs. ## Install 1. In Blender, open `Edit > Preferences > Add-ons`. 2. Click `Install...`. 3. Select `addons/blender/zordon_blender.zip`. 4. Enable `Zordon Render Submitter`. ## Configure Servers Use `Discover Servers` to find Zordon servers advertised with Zeroconf. Discovered servers are merged into the configured server list. You can also open the add-on preferences and edit `Servers` manually. Use a comma-separated list: ```text localhost:8080, render-node.local:8080 ``` The selected server appears in `Properties > Render > Zordon`. If Blender is running on the same machine as Zordon, `localhost:8080` should work. If Zordon is running on another machine, use that machine's hostname or IP address. Start the Zordon server before testing the connection: ```bash python server.py ``` Discovery first tries Python's `zeroconf` package if it is available inside Blender. If it is not available, the add-on falls back to the macOS `dns-sd` command when present. ## Submit A Job 1. Open or save a `.blend` file. 2. Choose a Zordon server in `Properties > Render > Zordon`. 3. Click `Test Connection`. 4. Set the job name, output name, and notes if needed. 5. Choose one or more cameras. At least one camera is always required. 6. Click `Submit Current File`. The addon uploads the current `.blend` to `POST /api/jobs` as multipart form data. It uses the current scene frame range, render resolution, FPS, and image format. Job name and output name default to the current `.blend` filename. If one camera is selected, the job renders that camera. If multiple cameras are selected, the addon submits camera-specific child jobs so each camera renders as its own Zordon job. Use `All` to select every camera or `Active Only` to render just the active scene camera. ## Camera Behavior At least one camera must be selected. The add-on prevents unchecking the final selected camera. When one camera is selected, the add-on sends a single job with: ```json { "args": { "camera": "Camera" } } ``` When multiple cameras are selected, the add-on sends `child_jobs`. Each child job gets its own camera argument and output name suffix, such as: ```json { "name": "scene_Camera-001", "output_path": "scene_Camera-001", "args": { "camera": "Camera.001" } } ``` ## Troubleshooting ### Could Not Reach Zordon Make sure the Zordon server is running and reachable from Blender. Check from a terminal: ```bash curl http://localhost:8080/api/heartbeat ``` If the server is remote, replace `localhost` with the server hostname or IP. ### No Cameras Found Add at least one Blender camera to the scene before submitting. ### Output Files Already Exist Multiple camera jobs should use camera-specific output names. If they collide, make sure the Zordon server includes the output-path fix that preserves child job `output_path` values. ## Packaging The add-on source lives at: ```text addons/blender/zordon_blender/ ``` The installable archive is: ```text addons/blender/zordon_blender.zip ``` Rebuild the archive from `addons/blender`: ```bash python3 -m zipfile -c zordon_blender.zip zordon_blender ``` ## Notes - The add-on is dependency-free and uses Blender's bundled Python standard library. - Only `http://` Zordon servers are currently supported. - `Save Before Submit` is enabled by default so the uploaded file matches the current Blender state.