refactor(P1): complete pipeline cleanup — M1 dead code + M3 blender split
M1 dead code removal: - admin.py: remove VALID_STL_QUALITIES + stl_quality (7 locations) - frontend: remove stl_quality from 6 files (api/orders.ts, api/worker.ts, WorkerActivity.tsx, RenderInfoModal.tsx, helpTexts.ts, mocks/handlers.ts) - blender_render.py: delete _mark_sharp_and_seams() — dead, never called (62 lines) - step_processor.py: delete _render_via_service() + 2 elif renderer=="threejs" branches - renderproblems_tmp/: remove 3 orphaned debug images M3 blender_render.py decomposition (858 → 248 lines): - _blender_gpu.py: activate_gpu(), configure_engine() - _blender_import.py: import_glb(), apply_rotation() - _blender_materials.py: FAILED_MATERIAL_NAME, assign_failed_material(), build_mat_map_lower(), apply_material_library() - _blender_camera.py: setup_auto_camera(), setup_auto_lights() - _blender_scene.py: ensure_collection(), apply_smooth_batch(), apply_sharp_edges_from_occ(), setup_shadow_catcher() - Entry-point: sys.path.insert for submodule discovery; arg-parse + Mode A/B orchestration only Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -517,11 +517,6 @@ def _generate_thumbnail(
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
})
|
||||
elif renderer == "threejs":
|
||||
# Three.js renderer removed in v2; treat as pillow fallback
|
||||
renderer = "pillow"
|
||||
render_log.update({"renderer": "pillow", "threejs_removed": True})
|
||||
|
||||
logger.info(f"Thumbnail renderer={renderer}, format={fmt}")
|
||||
|
||||
rendered_png: Path | None = None
|
||||
@@ -587,41 +582,6 @@ def _finalise_image(src: Path, dst: Path, fmt: str) -> Path | None:
|
||||
return dst
|
||||
|
||||
|
||||
def _render_via_service(
|
||||
url: str, step_path: Path, out_path: Path, extra: dict | None = None,
|
||||
job_id: str | None = None,
|
||||
) -> tuple[Path | None, dict]:
|
||||
"""Call an external renderer microservice to generate a thumbnail.
|
||||
|
||||
Returns (path_or_None, response_data_dict).
|
||||
job_id, when provided, is forwarded to the renderer so the render process
|
||||
can be cancelled via the renderer's /cancel/{job_id} endpoint.
|
||||
"""
|
||||
try:
|
||||
import httpx
|
||||
payload = {
|
||||
"step_path": str(step_path),
|
||||
"output_path": str(out_path),
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
**(extra or {}),
|
||||
}
|
||||
if job_id:
|
||||
payload["job_id"] = job_id
|
||||
resp = httpx.post(url, json=payload, timeout=300.0)
|
||||
data = {}
|
||||
try:
|
||||
data = resp.json()
|
||||
except Exception:
|
||||
pass
|
||||
if resp.status_code == 200 and out_path.exists():
|
||||
return out_path, data
|
||||
logger.warning(f"Renderer service {url} returned {resp.status_code}: {resp.text[:500]}")
|
||||
except Exception as exc:
|
||||
logger.warning(f"Renderer service {url} unreachable: {exc}")
|
||||
return None, {}
|
||||
|
||||
|
||||
def _generate_thumbnail_placeholder(step_path: Path, out_path: Path, fmt: str = "png") -> Path | None:
|
||||
"""Generate a simple placeholder thumbnail using Pillow."""
|
||||
try:
|
||||
@@ -897,9 +857,6 @@ def render_to_file(
|
||||
rendered_png = None
|
||||
else:
|
||||
logger.warning("Blender not available in this container — using Pillow fallback")
|
||||
elif renderer == "threejs":
|
||||
# Three.js renderer removed in v2 — fall through to Pillow placeholder
|
||||
logger.warning("Three.js renderer removed; using Pillow fallback")
|
||||
|
||||
if service_data:
|
||||
for key in ("total_duration_s", "stl_duration_s", "render_duration_s",
|
||||
|
||||
Reference in New Issue
Block a user