vibe-openscad

bare/gpt-5-codex / tier-2-offset-handle-mug

success tier 2

bare (gpt 5 codex)

render
bare render of tier-2-offset-handle-mug
loading STL…
success 169.0s · 273/17044t · $0.1708
SCAD (54 lines)
$fn = 128;

mug_outer_radius = 40;
mug_inner_radius = 35;
mug_height = 90;
mug_bottom_thickness = 6;

handle_inner_height = 30;
handle_inner_width = 25;
handle_wall_thickness = 6;
handle_depth = 20;
handle_overlap = 2;

module d_outline(straight_len, radius) {
    union() {
        square([straight_len, 2 * radius], center = false);
        intersection() {
            translate([straight_len, radius])
                circle(r = radius);
            translate([straight_len, 0])
                square([radius, 2 * radius], center = false);
        }
    }
}

module mug_body() {
    difference() {
        cylinder(h = mug_height, r = mug_outer_radius);
        translate([0, 0, mug_bottom_thickness])
            cylinder(h = mug_height - mug_bottom_thickness, r = mug_inner_radius);
    }
}

module handle() {
    inner_radius = handle_inner_height / 2;
    outer_radius = inner_radius + handle_wall_thickness;
    straight_inner = max(0, handle_inner_width - inner_radius);
    straight_outer = straight_inner + handle_wall_thickness;

    translate([mug_outer_radius - handle_overlap, 0, mug_height / 2])
        rotate([90, 0, 0])
            linear_extrude(height = handle_depth, center = true, convexity = 10)
                translate([0, -outer_radius])
                    difference() {
                        d_outline(straight_outer, outer_radius);
                        translate([handle_wall_thickness, handle_wall_thickness])
                            d_outline(straight_inner, inner_radius);
                    };
}

union() {
    mug_body();
    handle();
}
パラメータ (9)
スライダを動かすと openscad-wasm で再レンダリング

meta

runIdbare_gpt-5-codex-04d1f1bec1ff-2026-04-28T14-20-41-536Z
matrixIdbare/gpt-5-codex
signature04d1f1bec1ff0b7f…
provideropenai
modelgpt-5-codex
harnessbare
statussuccess
duration169.05s (wallclock: load + prompt eval + generation + network)
tokens273 in / 17044 out
wallclock tok/s100.8 tok/s (end-to-end)
cost$0.1708
createdAt2026-04-28T14:20:41.536Z
gitCommit76ae3a322ae4
openscadOpenSCAD version 2026.04.27

iteration chain

各 iteration step は独立した benchmark run です。parentRunId で前段にリンクします。

prompt

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

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

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

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