Repository navigation
Expand render pipeline, outputs, lighting, import and pre-flight (1.9.0) - #5
Merged
Merged
Conversation
Render pipeline
- Render All runs modally: status bar progress and time left, Esc
stops after the image in flight, scene state always restored
- Skip Existing resumes a crashed or cancelled batch
- Per-product render ticks and Render Active; labels stay stable
when products are unticked
- Per-view checkboxes (Custom view set) and per-custom-view toggles
- Reframe Before Rendering rebuilds cameras at render time
Outputs
- Naming templates for files and folders ({label} {prefix}
{number} {product} {view} {mode}), with clash detection
- Contact sheet per product with captions
- Turntables: frames plus H.264 MP4 and looping GIF
- Post-processed copies: trim, pad to square, flatten, PNG/JPEG/WebP,
max size and extra sizes; originals untouched
- CSV/JSON manifest, merged across partial runs
Look and lighting
- Lights follow the camera so every view is lit like Front
- Ground: shadow catcher or floor, placed under each product
- HDRI background, optionally hidden from camera
- Line art, mask and AO passes
- Material presets for the batch or per product, applied through a
temporary Geometry Nodes modifier
- Save and delete your own lighting presets
Import and geometry
- STEP parts import as separate named objects with their CAD
colours, read from the STEP file since console FreeCAD drops them
- IGES via FreeCAD; OBJ, PLY, glTF/GLB, FBX via Blender; 3MF via a
small built-in reader
- Add a whole folder, optionally recursive
- Real size and units recorded at import; Keep Proportions scale
mode; Rest on Floor
- Auto Orient (lay flat or principal axes) and Reset Orientation
Pre-flight
- Checks the batch before rendering, with one-click fixes; errors
stop Render All, warnings ask first; empty products are skipped
Fixes
- FreeCAD import meshed assembly containers and origin planes,
duplicating every part of a multi-part STEP
- Stray-object check crashed on stale view layer entries
- Stop setting deprecated use_nodes on Blender 5
…0.0) Annotations - cameras.json per product: per-view K (perspective) or pixel size (orthographic), c2w in OpenGL and w2c in OpenCV axes, image paths - Track each product's source-to-world transform through every move MultiView makes, so renders map back to CAD coordinates and units - nerfstudio-style transforms.json for perspective views and for turntables (equivalent orbiting cameras) - Depth and camera-space normal passes: single-sample Cycles, 32-bit EXR, no filter blending - Part-ID pass: 16-bit PNG label map numbering a product's parts - COCO export: per-part instance masks (RLE) with part names - BOP export from perspective views: rgb, depth (mm), masks, scene_camera/gt/gt_info, PLY models and models_info, with rigid poses in source-model millimetres Command line - cli.py runs a JSON/TOML job headless without installing the add-on: import, standardize, auto-orient, scene setup, render - --shard i/n with job-wide labels and per-shard lists, --merge to combine them, --check for pre-flight only, --list-settings - Exit codes 0/1/2 and a MULTIVIEW_SUMMARY line Tests - tests/ suite run inside background Blender, with a runner and STEP/IGES fixtures; FreeCAD checks skip when it is absent - GitHub Actions workflow running the suite on Blender 5.0.0 Fixes - JSON outputs are rewritten only when their content changes
…(1.11.0) Engineering drawings - Front/Top/Right SVGs and a three-view sheet (third or first angle), 1:1 in the product's source millimetres - Feature edges (creases, silhouettes, boundaries) tested against a depth render along their length; hidden stretches drawn dashed - Overall dimensions per view; drafting-correct view orientation View protocols - MVCNN-12, SyncDreamer-16, Zero123++ v1.2, MVDream-4, Zero-1-to-3 (seeded), TRELLIS-150 and a 15-degree catalogue rig, with their fields of view and fixed camera distances Provenance - manifest.json provenance block: versions, render settings, times and a snapshot of every setting; source_sha256 per row - Optional croissant.json (MLCommons Croissant 1.0), validated with mlcroissant; written by --merge for sharded runs - CITATION.cff Randomization - Seeded per product and view: camera jitter, light rig turn and strength, random HDRIs, materials, and distractors placed behind the product in Full renders only - Every pass of a view and its cameras.json/BOP pose share the jittered camera; everything is restored afterwards Tests - test_drawings.py and test_protocols_random.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Render pipeline
Outputs
Look and lighting
Import and geometry
Pre-flight
Fixes