vibe-openscad

tier-1-mug / gpt-5.2-codex

5 run / 累計 238.6s / 累計 $0.2461

openai gpt 5.2 codex bare

bare (provider default effort)

run detail →
render
bare render of tier-1-mug
loading STL…
success 20.5s · 168/1351t · $0.0165
SCAD (26 lines)
$fn = 100;

module mug_body() {
    difference() {
        cylinder(h=100, r=40);
        translate([0,0,6])
            cylinder(h=94, r=36);
    }
}

module torus(R, r) {
    rotate_extrude()
        translate([R, 0, 0])
            circle(r);
}

module handle() {
    translate([48, 0, 50])
        rotate([90, 0, 0])
            torus(12, 4);
}

union() {
    mug_body();
    handle();
}

prompt

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

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

variant: effort

lownot run
medium (default) success
medium
20.5s · 168/1351t · $0.0165
SCAD (26 lines)
$fn = 100;

module mug_body() {
    difference() {
        cylinder(h=100, r=40);
        translate([0,0,6])
            cylinder(h=94, r=36);
    }
}

module torus(R, r) {
    rotate_extrude()
        translate([R, 0, 0])
            circle(r);
}

module handle() {
    translate([48, 0, 50])
        rotate([90, 0, 0])
            torus(12, 4);
}

union() {
    mug_body();
    handle();
}
highnot run
maxnot run
xhighnot run

iteration: iter-png

i1 success
iter 1
20.3s · 870/1665t · $0.0214
diff vs bare: +1/-1
  $fn = 100;
  
  module mug_body() {
      difference() {
          cylinder(h=100, r=40);
          translate([0,0,6])
              cylinder(h=94, r=36);
      }
  }
  
  module torus(R, r) {
      rotate_extrude()
          translate([R, 0, 0])
              circle(r);
  }
  
  module handle() {
-     translate([48, 0, 50])
+     translate([54, 0, 50])
          rotate([90, 0, 0])
              torus(12, 4);
  }
  
  union() {
      mug_body();
      handle();
  }
SCAD (26 lines)
$fn = 100;

module mug_body() {
    difference() {
        cylinder(h=100, r=40);
        translate([0,0,6])
            cylinder(h=94, r=36);
    }
}

module torus(R, r) {
    rotate_extrude()
        translate([R, 0, 0])
            circle(r);
}

module handle() {
    translate([54, 0, 50])
        rotate([90, 0, 0])
            torus(12, 4);
}

union() {
    mug_body();
    handle();
}
i2 success
iter 2
102.5s · 870/8849t · $0.1076
diff vs i1: +16/-5
  $fn = 100;
  
+ outer_d = 80;
+ outer_r = outer_d / 2;
+ height = 100;
+ wall = 4;
+ bottom = 6;
+ 
+ handle_R = 12;  // major radius
+ handle_r = 4;   // tube radius
+ overlap = 2;
+ handle_offset = outer_r + handle_R + handle_r - overlap;
+ 
  module mug_body() {
      difference() {
-         cylinder(h=100, r=40);
-         translate([0,0,6])
-             cylinder(h=94, r=36);
+         cylinder(h=height, r=outer_r);
+         translate([0,0,bottom])
+             cylinder(h=height-bottom+1, r=outer_r-wall);
      }
  }
  
  module torus(R, r) {
      rotate_extrude()
          translate([R, 0, 0])
              circle(r);
  }
  
  module handle() {
-     translate([54, 0, 50])
+     translate([handle_offset, 0, height/2])
          rotate([90, 0, 0])
-             torus(12, 4);
+             torus(handle_R, handle_r);
  }
  
  union() {
      mug_body();
      handle();
  }
SCAD (37 lines)
$fn = 100;

outer_d = 80;
outer_r = outer_d / 2;
height = 100;
wall = 4;
bottom = 6;

handle_R = 12;  // major radius
handle_r = 4;   // tube radius
overlap = 2;
handle_offset = outer_r + handle_R + handle_r - overlap;

module mug_body() {
    difference() {
        cylinder(h=height, r=outer_r);
        translate([0,0,bottom])
            cylinder(h=height-bottom+1, r=outer_r-wall);
    }
}

module torus(R, r) {
    rotate_extrude()
        translate([R, 0, 0])
            circle(r);
}

module handle() {
    translate([handle_offset, 0, height/2])
        rotate([90, 0, 0])
            torus(handle_R, handle_r);
}

union() {
    mug_body();
    handle();
}
i3 success
iter 3
74.8s · 950/6891t · $0.0842
diff vs i2: +0/-0
  $fn = 100;
  
  outer_d = 80;
  outer_r = outer_d / 2;
  height = 100;
  wall = 4;
  bottom = 6;
  
  handle_R = 12;  // major radius
  handle_r = 4;   // tube radius
  overlap = 2;
  handle_offset = outer_r + handle_R + handle_r - overlap;
  
  module mug_body() {
      difference() {
          cylinder(h=height, r=outer_r);
          translate([0,0,bottom])
              cylinder(h=height-bottom+1, r=outer_r-wall);
      }
  }
  
  module torus(R, r) {
      rotate_extrude()
          translate([R, 0, 0])
              circle(r);
  }
  
  module handle() {
      translate([handle_offset, 0, height/2])
          rotate([90, 0, 0])
              torus(handle_R, handle_r);
  }
  
  union() {
      mug_body();
      handle();
  }
SCAD (37 lines)
$fn = 100;

outer_d = 80;
outer_r = outer_d / 2;
height = 100;
wall = 4;
bottom = 6;

handle_R = 12;  // major radius
handle_r = 4;   // tube radius
overlap = 2;
handle_offset = outer_r + handle_R + handle_r - overlap;

module mug_body() {
    difference() {
        cylinder(h=height, r=outer_r);
        translate([0,0,bottom])
            cylinder(h=height-bottom+1, r=outer_r-wall);
    }
}

module torus(R, r) {
    rotate_extrude()
        translate([R, 0, 0])
            circle(r);
}

module handle() {
    translate([handle_offset, 0, height/2])
        rotate([90, 0, 0])
            torus(handle_R, handle_r);
}

union() {
    mug_body();
    handle();
}