vibe-openscad

tier-1-mug / gpt-5-codex

5 run / 累計 452.1s / 累計 $0.4907

openai gpt 5 codex bare

bare (provider default effort)

run detail →
render
bare render of tier-1-mug
loading STL…
success 100.6s · 168/11977t · $0.1200
SCAD (36 lines)
outer_d = 80;
height = 100;
wall_thickness = 4;
bottom_thickness = 6;

outer_r = outer_d / 2;
inner_r = outer_r - wall_thickness;
inner_h = height - bottom_thickness;

handle_major = 12;
handle_minor = 4;
handle_center_offset = outer_r + handle_major;
handle_center_height = height / 2;

$fn = 96;

module torus(R, r) {
    rotate_extrude(convexity = 10, $fn = 128)
        translate([R, 0, 0])
            circle(r = r, $fn = 64);
}

module mug() {
    difference() {
        union() {
            cylinder(r = outer_r, h = height);
            translate([handle_center_offset, 0, handle_center_height])
                rotate([0, 90, 0])
                    torus(handle_major, handle_minor);
        }
        translate([0, 0, bottom_thickness])
            cylinder(r = inner_r, h = inner_h + 0.2);
    }
}

mug();
パラメータ (6)
スライダを動かすと openscad-wasm で再レンダリング

prompt

OpenSCAD で、外径 80mm、高さ 100mm、肉厚 4mm のマグカップを作ってください。
底面の厚みは 6mm とし、内側はくり抜いて飲み物を入れられる形状にしてください。
さらに、側面には外径方向に飛び出す半径 12mm の取手(リング状の取手)を付けてください。
取手はカップの中心高さあたりに付け、外周から十分にはみ出して指を通せる形にしてください。

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

variant: effort

lownot run
medium (default) success
medium
100.6s · 168/11977t · $0.1200
SCAD (36 lines)
outer_d = 80;
height = 100;
wall_thickness = 4;
bottom_thickness = 6;

outer_r = outer_d / 2;
inner_r = outer_r - wall_thickness;
inner_h = height - bottom_thickness;

handle_major = 12;
handle_minor = 4;
handle_center_offset = outer_r + handle_major;
handle_center_height = height / 2;

$fn = 96;

module torus(R, r) {
    rotate_extrude(convexity = 10, $fn = 128)
        translate([R, 0, 0])
            circle(r = r, $fn = 64);
}

module mug() {
    difference() {
        union() {
            cylinder(r = outer_r, h = height);
            translate([handle_center_offset, 0, handle_center_height])
                rotate([0, 90, 0])
                    torus(handle_major, handle_minor);
        }
        translate([0, 0, bottom_thickness])
            cylinder(r = inner_r, h = inner_h + 0.2);
    }
}

mug();
highnot run
maxnot run
xhighnot run

iteration: iter-png

i1 success
iter 1
106.4s · 1135/10281t · $0.1042
diff vs bare: +2/-1
  outer_d = 80;
  height = 100;
  wall_thickness = 4;
  bottom_thickness = 6;
  
  outer_r = outer_d / 2;
  inner_r = outer_r - wall_thickness;
  inner_h = height - bottom_thickness;
  
  handle_major = 12;
  handle_minor = 4;
- handle_center_offset = outer_r + handle_major;
+ handle_overlap = 0.5;
+ handle_center_offset = outer_r + handle_minor - handle_overlap;
  handle_center_height = height / 2;
  
  $fn = 96;
  
  module torus(R, r) {
      rotate_extrude(convexity = 10, $fn = 128)
          translate([R, 0, 0])
              circle(r = r, $fn = 64);
  }
  
  module mug() {
      difference() {
          union() {
              cylinder(r = outer_r, h = height);
              translate([handle_center_offset, 0, handle_center_height])
                  rotate([0, 90, 0])
                      torus(handle_major, handle_minor);
          }
          translate([0, 0, bottom_thickness])
              cylinder(r = inner_r, h = inner_h + 0.2);
      }
  }
  
  mug();
SCAD (37 lines)
outer_d = 80;
height = 100;
wall_thickness = 4;
bottom_thickness = 6;

outer_r = outer_d / 2;
inner_r = outer_r - wall_thickness;
inner_h = height - bottom_thickness;

handle_major = 12;
handle_minor = 4;
handle_overlap = 0.5;
handle_center_offset = outer_r + handle_minor - handle_overlap;
handle_center_height = height / 2;

$fn = 96;

module torus(R, r) {
    rotate_extrude(convexity = 10, $fn = 128)
        translate([R, 0, 0])
            circle(r = r, $fn = 64);
}

module mug() {
    difference() {
        union() {
            cylinder(r = outer_r, h = height);
            translate([handle_center_offset, 0, handle_center_height])
                rotate([0, 90, 0])
                    torus(handle_major, handle_minor);
        }
        translate([0, 0, bottom_thickness])
            cylinder(r = inner_r, h = inner_h + 0.2);
    }
}

mug();
i2 success
iter 2
64.0s · 1146/6142t · $0.0629
diff vs i1: +1/-1
  outer_d = 80;
  height = 100;
  wall_thickness = 4;
  bottom_thickness = 6;
  
  outer_r = outer_d / 2;
  inner_r = outer_r - wall_thickness;
  inner_h = height - bottom_thickness;
  
  handle_major = 12;
  handle_minor = 4;
  handle_overlap = 0.5;
- handle_center_offset = outer_r + handle_minor - handle_overlap;
+ handle_center_offset = outer_r + handle_major + handle_minor - handle_overlap;
  handle_center_height = height / 2;
  
  $fn = 96;
  
  module torus(R, r) {
      rotate_extrude(convexity = 10, $fn = 128)
          translate([R, 0, 0])
              circle(r = r, $fn = 64);
  }
  
  module mug() {
      difference() {
          union() {
              cylinder(r = outer_r, h = height);
              translate([handle_center_offset, 0, handle_center_height])
                  rotate([0, 90, 0])
                      torus(handle_major, handle_minor);
          }
          translate([0, 0, bottom_thickness])
              cylinder(r = inner_r, h = inner_h + 0.2);
      }
  }
  
  mug();
SCAD (37 lines)
outer_d = 80;
height = 100;
wall_thickness = 4;
bottom_thickness = 6;

outer_r = outer_d / 2;
inner_r = outer_r - wall_thickness;
inner_h = height - bottom_thickness;

handle_major = 12;
handle_minor = 4;
handle_overlap = 0.5;
handle_center_offset = outer_r + handle_major + handle_minor - handle_overlap;
handle_center_height = height / 2;

$fn = 96;

module torus(R, r) {
    rotate_extrude(convexity = 10, $fn = 128)
        translate([R, 0, 0])
            circle(r = r, $fn = 64);
}

module mug() {
    difference() {
        union() {
            cylinder(r = outer_r, h = height);
            translate([handle_center_offset, 0, handle_center_height])
                rotate([0, 90, 0])
                    torus(handle_major, handle_minor);
        }
        translate([0, 0, bottom_thickness])
            cylinder(r = inner_r, h = inner_h + 0.2);
    }
}

mug();
i3 success
iter 3
80.6s · 1149/8226t · $0.0837
diff vs i2: +5/-4
  outer_d = 80;
  height = 100;
  wall_thickness = 4;
  bottom_thickness = 6;
  
  outer_r = outer_d / 2;
  inner_r = outer_r - wall_thickness;
  inner_h = height - bottom_thickness;
  
  handle_major = 12;
  handle_minor = 4;
- handle_overlap = 0.5;
- handle_center_offset = outer_r + handle_major + handle_minor - handle_overlap;
+ handle_overlap = 1;
+ 
+ handle_offset_x = outer_r - handle_overlap - (handle_major - handle_minor);
  handle_center_height = height / 2;
  
  $fn = 96;
  
  module torus(R, r) {
      rotate_extrude(convexity = 10, $fn = 128)
          translate([R, 0, 0])
              circle(r = r, $fn = 64);
  }
  
  module mug() {
      difference() {
          union() {
              cylinder(r = outer_r, h = height);
-             translate([handle_center_offset, 0, handle_center_height])
-                 rotate([0, 90, 0])
+             translate([handle_offset_x, 0, handle_center_height])
+                 rotate([90, 0, 0])
                      torus(handle_major, handle_minor);
          }
          translate([0, 0, bottom_thickness])
              cylinder(r = inner_r, h = inner_h + 0.2);
      }
  }
  
  mug();
SCAD (38 lines)
outer_d = 80;
height = 100;
wall_thickness = 4;
bottom_thickness = 6;

outer_r = outer_d / 2;
inner_r = outer_r - wall_thickness;
inner_h = height - bottom_thickness;

handle_major = 12;
handle_minor = 4;
handle_overlap = 1;

handle_offset_x = outer_r - handle_overlap - (handle_major - handle_minor);
handle_center_height = height / 2;

$fn = 96;

module torus(R, r) {
    rotate_extrude(convexity = 10, $fn = 128)
        translate([R, 0, 0])
            circle(r = r, $fn = 64);
}

module mug() {
    difference() {
        union() {
            cylinder(r = outer_r, h = height);
            translate([handle_offset_x, 0, handle_center_height])
                rotate([90, 0, 0])
                    torus(handle_major, handle_minor);
        }
        translate([0, 0, bottom_thickness])
            cylinder(r = inner_r, h = inner_h + 0.2);
    }
}

mug();