← Test Lab — Gemini — 2026-05-15T12:44

Flat Roof SIP

v1 Gemini approved

Create a flat SIP roof panel, 2800x1800x100mm. Rests entirely on the roof ledger, fully recessed within the wall structure to leave a 100mm upper parapet.

Dependencies

roof_ledger.roof_bearing
◉
Agent initialized (status: waiting_for_dependencies, action: check_dependencies)
◉
Provider: google | Profile: quality
◇
Received interface roof_ledger.roof_bearing: %{name: "roof_bearing", type: "face", value: %{}, agent_id: "roof_ledger"}
◉
All dependencies resolved, starting generation
◉
Generating v1
○
Calling Gemini API for code generation (gemini-3.1-pro-preview)...
◉
Generation token budget: max_tokens=12288, thinking_budget=0 (retry_count=0)
●
Received response (316 tokens)
◆
roof_panel_v1.py · 35 lines
import FreeCAD
import Part
import math
from FreeCAD import Vector, Placement, Rotation

# Force load PartDesign module
FreeCAD.loadModule("PartDesign")
import PartDesign

# === PARAMETRIC CONSTANTS ===
# Dimensions in mm
LENGTH = 2800
WIDTH = 1800
HEIGHT = 100
# === END PARAMETRIC CONSTANTS ===

# === DOCUMENT & BODY ===
doc = FreeCAD.ActiveDocument or FreeCAD.newDocument("Model")
body = doc.addObject("PartDesign::Body", "Body")

# === SKETCHES & FEATURES ===
# Use AdditiveBox primitive for simple reliable geometry
box = doc.addObject("PartDesign::AdditiveBox", "RoofPanel")
box.Length = LENGTH
box.Width = WIDTH
box.Height = HEIGHT

# Position the base at the origin (X=0, Y=0, Z=0) expanding into the positive axes
box.Placement = Placement(Vector(0, 0, 0), Rotation())
body.addObject(box)

# === FINAL ===
doc.recompute()
if FreeCAD.GuiUp:
    FreeCAD.Gui.ActiveDocument.ActiveView.fitAll()
●
Executing in FreeCAD...
◉
StepAnalyzer failed: FreeCAD could not read STEP file: FreeCAD exception thrown (File to load not existing or not readable) — skipping
●
FreeCAD execution succeeded
●
Exported: model.stl
◉
Generation succeeded and component was auto-approved (v1)
◉
Provider updated to google / balanced
◉
Provider updated to google / balanced
◉
Provider updated to google / balanced
◉
Provider updated to google / balanced
◉
Provider updated to google / balanced
◉
Provider updated to google / balanced
◉
Provider updated to google / balanced
◉
Provider updated to google / balanced
v0.0.985