I wanted to play with this in OpenSCAD; here is G1 vs G2

  include <BOSL2/nurbs.scad>
  $fn=16;
  back(400) cuboid([200,200,100],rounding=50,edges="Z");
  pts=subdivide_path(square([200,200],center=true),8);
  linear_extrude(100) polygon(nurbs_curve(pts,2,splinesteps=$fn/4,type="closed"));