vibe-openscad

bare/gpt-oss-20b / tier-2-offset-handle-mug

render_error tier 2
error
openscad stl render failed (exit 1): ERROR: Parser error: syntax error in file ../../../../../tmp/render-KGf0XB/input.scad, line 6
Can't parse file '/tmp/render-KGf0XB/input.scad'!

bare (openai/gpt-oss-20b)

render
no render
render_error 10.3s · 334/1549t
openscad stl render failed (exit 1): ERROR: Parser error: syntax error in file ../../../../../tmp/render-KGf0XB/input.scad, line 6
Can't parse file '/tmp/render-KGf0XB/input.scad'!

SCAD (48 lines)
// マグカップ本体(外径 80mm、内径 70mm、厚み 5mm、底面厚み 6mm)
module mug_body() {
    // 外側の円筒 (高さ 90mm)
    outer = cylinder(r=40, h=90, $fn=100);
    // 内側の空洞 (高さ 96mm=90+6 で底を含む)
    inner = translate([0,0,-6]) cylinder(r=35, h=96, $fn=100);
    body = difference() {
        outer;
        inner;
    };
    // 底面厚み 6mm
    bottom = cylinder(r=40, h=6, $fn=100);
    union() { body; bottom; }
}

// D 字形取手(+X側にのみ付ける)
module handle() {
    // D字型の断面を作成
    d_shape = polygon(points=[
        [0, 15],           // 内側直線端(左上)
        [25, 15],          // 外側直線端(右上)
        [25, -15],         // 外側直線端(右下)
        [0, -15]           // 内側直線端(左下)
    ]);
    // 半円を外側に付ける
    semicircle = rotate_extrude(angle=180)
                 translate([12.5, 0, 0])
                 circle(r=12.5, $fn=100);
    // D字型断面の押し出し(厚み 5mm)
    handle_profile = linear_extrude(height=5, center=true) d_shape;
    // 半円を付けて形状化
    handle_body = union() {
        handle_profile;
        translate([0,0,2.5]) semicircle;   // 半円は厚み方向に重ねる
    };
    // 取手の位置(+X側、中央付近)
    translate([45, 0, 30]) rotate([90,0,0]) handle_body;
}

// 本体と取手を確実に union してマニフォールド化
module mug_with_handle() {
    union() {
        mug_body();
        handle();
    }
}

mug_with_handle();

meta

runIdbare_gpt-oss-20b-84ad08162fc6-2026-04-29T07-29-33-047Z
matrixIdbare/gpt-oss-20b
signature84ad08162fc6a1ed…
provideropenai-self-hosted
modelopenai/gpt-oss-20b
harnessbare
statusrender_error
duration10.32s (wallclock: load + prompt eval + generation + network)
TTFT0.098s
generation time10.16s (pure decode, excludes load + prompt eval)
tokens334 in / 1549 out
generation tok/s152.4 tok/s (pure decode rate)
wallclock tok/s150.1 tok/s (end-to-end)
createdAt2026-04-29T07:29:33.047Z
gitCommit68749000bf3a
openscadOpenSCAD version 2026.04.27

model metadata (self-hosted)

セルフホスト LLM はクラウドの単一 provider と違い、 実質「(モデル開発者, weight publisher, 量子化)」の組で挙動が決まる。 run 時に LM Studio / Ollama から取得した値:

publisheropenai
typellm
archgpt-oss
quantizationMXFP4
max ctx131,072 tok
capabilitiestool_use
host GPUNVIDIA GeForce RTX 3090 (Vulkan)
host VRAM24 GB
host CPU12th Gen Intel(R) Core(TM) i9-12900K
host RAM32 GB

prompt

OpenSCAD で、向きが指定されたマグカップを作ってください。

本体:
- 外径 80mm、内径 70mm(肉厚 5mm)、高さ 90mm の円筒形マグ
- 底面の厚みは 6mm
- 内側は飲み物を入れられるよう中空

取手(handle):
- マグの **+X 軸方向の側面のみ** に付ける(他の方向には付けない)
- 取手は D 字形状(外側が半円、本体側が直線)で、本体外周にしっかり接続する
- 取手の内側の空間は高さ 30mm × 幅 25mm(指 3 本ぐらい入る)
- 取手はマグの高さ方向の中央付近に付ける
- 本体と取手は確実に union され、マニフォールド(隙間や宙吊りなし)を保つ

完成したコード全体を ```openscad ... ``` のフェンスで囲んで出力してください。コードのみで、追加の説明は不要です。