module cornerfillet(cfx = 15, cfy = 25, cfz = 10) {
smidge = .001;
cfr = max(cfx, cfy, cfz);
rnd = cfr - sqrt(2) / 2 * cfr + smidge;
resize([cfx, cfy, cfz])
difference() {
cube(cfr);
hull() {
echo(cfx, cfy, cfz);
for (r = [[0, 0, 0], [-90, 180, 180], [180, -90, 180]])
rotate(r) translate([cfr + smidge, cfr + smidge, 0]) rotate([0, 0, 180])
linear_extrude(height=smidge, center=true) intersection() { square(cfr + smidge); circle(cfr + smidge); }
translate([rnd, rnd, rnd]) sphere(r=rnd);
translate([cfr + smidge, cfr + smidge, cfr + smidge]) sphere(smidge * 2, $fn=1);
}
}
}
cornerfillet(10, 10, 10);