use use star_burst_n = 5; min_star_r = .5; function bunny() = let( points = [[-15.01, 23.89, 25.51], [-18.8, 20.38, 27.35], [-19.44, 21.92, 23.99], [-18.03, 19.7, 17.72], [-9.43, 23.48, 24.99], [-13.13, 30.67, 29.04], [-8.06, 28.19, 27.82], [-12.21, 37.01, 26.7], [-14.97, 33.91, 29.19], [-18.37, 36.37, 26.34], [-19.27, 35.79, 32.38], [-15.19, 31.89, 32.65], [-17.95, 33.71, 35.78], [-18.99, 40.95, 37.4], [-18.15, 51.62, 39.61], [-19.83, 49.41, 43], [-21.11, 32.99, 37.08], [-19.29, 32.62, 36.65], [-21.07, 27.58, 37.1], [-18.22, 31.1, 37.25], [-8.7, 35.89, 44.72], [-15.49, 29.9, 36.21], [-11.59, 33.45, 39.01], [-5.51, 35.57, 38.75], [-16.21, 24.9, 31.58], [-18.07, 22.99, 35.48], [-21.73, 18.93, 31.76], [-20.79, 17.92, 25.16], [-25.69, 18.13, 29.14], [-27.4, 20.49, 24.69], [-23.13, 22.18, 22.57], [-25.67, 25.97, 22.66], [-28.73, 26.76, 28.1], [-27.53, 31.77, 25.19], [-27.47, 31.68, 30.09], [-26.16, 34.33, 27.63], [-25.71, 32.39, 23.05], [-23.53, 34.89, 24.39], [-22.98, 35.94, 28.31], [-15.57, 40.09, 20.37], [-22.55, 38.14, 15.38], [-20.04, 38.61, 12.78], [-23.68, 35.12, 12.22], [-26.4, 33.22, 16.16], [-27.28, 28.17, 19.84], [-27.1, 27.06, 17.25], [-26.25, 29.09, 14.04], [-24.71, 23.42, 15.47], [-21.76, 22.56, 12.18], [-20.94, 28.81, 8.32], [-20.45, 34.03, 8.95], [-17.15, 35.27, 8.54], [-13.99, 38.35, 10.81], [-16.64, 35.32, 4.26], [-10.07, 36.82, 5.41], [-13.22, 37.09, 3.77], [-13.77, 39.92, 1.54], [-27.53, 29.54, 35.2], [-23.62, 24.12, 36.42], [-0.18, 44.58, 14.92], [5.34, 42.46, 11.02], [-7.08, 45.1, 11.83], [-20.38, 48.46, 36.44], [-20.9, 50.02, 38.35], [-14.54, 38.14, 0], [-17.38, 28.26, 4.62], [-21.39, 31.46, 2.5], [-18.69, 28.02, 0], [6.23, 39.85, 0], [-10.89, 42.91, 0], [-10.09, 19.53, 0], [8.69, 35.12, 0], [14.56, 32.88, 0], [-19.89, 21.39, 0], [-15.02, 20, 0], [14.71, 27.91, 0], [5.14, 20.08, 0], [-12.5, 43.5, 0], [-17.47, 19.42, 0], [-11.96, 20.85, 2.57], [-8.94, 22.05, 5.61], [-13.35, 21.26, 4.06], [-22.16, 20.79, 34.6], [-26.23, 21.37, 33.12], [-8.45, 41.16, 6.14], [-9.51, 43.51, 13.12], [-3.27, 43.7, 5.99], [-6.48, 42.01, 3.89], [6.23, 39.85, 3.34], [11.65, 35.38, 6.42], [8.69, 35.12, 3.34], [-27.38, 20.38, 28.97], [-5.68, 45.37, 15.08], [-6.11, 19.46, 5.39], [-7.29, 20.41, 10.1], [-3.24, 43.79, 18.47], [16.1, 32.56, 10.91], [13.25, 35.32, 4.94], [14.73, 31.66, 11.55], [16.01, 27.06, 4.19], [18.19, 28.56, 10.53], [17.55, 26.12, 8.37], [15.41, 29.73, 12.11], [16.97, 30.27, 11.77], [-10.63, 40.9, 15.26], [-22.91, 21.47, 17.1], [18.11, 31.72, 8.09], [14.79, 32.81, 3.47], [-17.48, 31.98, 7.02], [-15.72, 28.68, 6.7], [-24.36, 35.78, 31.11], [-22.62, 39.82, 35.5], [-21.48, 36.09, 33.68], [-21.43, 49.08, 41.09], [-23.68, 46.8, 40.65], [-7.63, 41.16, 18.87], [1.85, 40.3, 20.13], [-22.12, 33.03, 0], [-20.45, 35.32, 0], [-25.51, 34.22, 34], [-3.82, 23.27, 27.03], [-18.19, 23.16, 4.64], [-17.47, 19.42, 2.14], [-8.49, 43.23, 17.1], [-8.53, 40.45, 21.48], [2.12, 39.08, 24.61], [13.66, 26.44, 3.34], [-27.55, 29.2, 31.03], [-6.71, 18.3, 3.08], [16.57, 26.05, 10.63], [14.17, 23.74, 6.35], [-20.34, 35.06, 1.97], [-16.19, 25.52, 7.79], [-6.48, 40.19, 42.93], [-17.88, 33.45, 5.21], [-5.32, 39.58, 46.63], [-15.64, 22.11, 10.4], [-16.88, 19.8, 14.66], [-12.7, 20.79, 19.69], [-12.83, 20.77, 10.89], [-8.96, 20.02, 17.23], [-6.88, 19.85, 19.6], [0, 21.28, 25.12], [4.16, 25.84, 28.65], [-1.36, 25.64, 29.0], [1.95, 33.22, 29.27], [6.36, 33.18, 27.77], [1.29, 36.39, 27.52], [-2.99, 39.4, 40.64], [4.67, 20.32, 3.34], [11.75, 24.0, 6.85], [10.77, 24.68, 3.34], [-21.99, 45.44, 35.26], [16.4, 27.83, 11.86], [-3.01, 41.07, 40.21], [13.89, 26.33, 10.81], [13.57, 32.84, 17.89], [10.19, 26.87, 24.76], [12.53, 26.11, 19.97], [-3.39, 42.42, 43.44], [0.56, 17.58, 4.92], [-19.4, 21.94, 2.95], [-3.24, 17.68, 6.03], [-7.67, 17.24, 14.59], [5.42, 17.43, 13.89], [-1.04, 15.65, 12.75], [-0.08, 16.62, 18.06], [-4.7, 16.51, 17.63], [9.94, 20.62, 16.78], [8.78, 23.2, 23.64], [7.28, 28.77, 27.65], [6.56, 24.12, 26.56], [0, 20.0, 20.56], [9.53, 32.99, 25.4], [9.23, 36.02, 23.86], [12.44, 36.47, 16.71], [8.82, 38.31, 20.89], [2.27, 43.15, 17.59]], faces = [[2, 1, 0], [3, 2, 0], [0, 4, 3], [4, 0, 5], [6, 4, 5], [7, 6, 5], [7, 5, 8], [9, 7, 8], [8, 10, 9], [10, 8, 11], [10, 11, 12], [10, 12, 13], [13, 14, 10], [13, 15, 14], [16, 15, 13], [13, 17, 16], [17, 18, 16], [19, 18, 17], [19, 17, 20], [21, 19, 20], [21, 20, 22], [21, 22, 23], [21, 23, 11], [24, 21, 11], [24, 11, 5], [25, 21, 24], [26, 25, 24], [1, 26, 24], [26, 1, 27], [28, 26, 27], [29, 28, 27], [30, 29, 27], [30, 27, 2], [29, 30, 31], [31, 32, 29], [32, 31, 33], [34, 32, 33], [33, 35, 34], [35, 33, 36], [35, 36, 37], [37, 38, 35], [9, 38, 37], [9, 37, 39], [37, 40, 39], [40, 41, 39], [40, 42, 41], [43, 42, 40], [43, 40, 36], [44, 43, 36], [36, 31, 44], [45, 44, 31], [43, 44, 45], [46, 43, 45], [46, 45, 47], [46, 47, 48], [46, 48, 49], [46, 49, 50], [50, 42, 46], [50, 49, 51], [51, 52, 50], [52, 51, 53], [54, 52, 53], [54, 53, 55], [56, 54, 55], [58, 57, 18], [61, 60, 59], [14, 62, 10], [14, 15, 63], [64, 56, 55], [67, 66, 65], [153, 155, 102], [76, 71, 70], [155, 158, 102], [169, 158, 168], [72, 71, 76], [150, 155, 130], [71, 68, 70], [166, 168, 164], [70, 68, 67], [74, 67, 73], [68, 69, 67], [168, 158, 155], [160, 164, 150], [67, 74, 70], [75, 72, 76], [100, 129, 153], [69, 64, 67], [69, 77, 64], [73, 78, 74], [30, 2, 3], [81, 80, 79], [83, 82, 28], [77, 69, 84], [36, 40, 37], [54, 84, 85], [61, 87, 86], [69, 88, 87], [90, 89, 88], [50, 41, 42], [11, 8, 5], [91, 57, 83], [92, 61, 59], [94, 93, 80], [95, 92, 59], [98, 97, 96], [101, 100, 99], [58, 18, 25], [43, 46, 42], [103, 102, 96], [85, 104, 54], [45, 105, 47], [36, 33, 31], [107, 106, 97], [49, 109, 108], [112, 111, 110], [114, 113, 15], [58, 82, 83], [95, 116, 115], [117, 67, 64], [55, 118, 64], [56, 64, 77], [35, 119, 34], [47, 105, 48], [64, 118, 117], [2, 27, 1], [4, 6, 120], [62, 14, 63], [110, 35, 38], [15, 16, 114], [84, 56, 77], [67, 117, 66], [67, 65, 121], [121, 81, 122], [16, 18, 57], [85, 123, 104], [125, 124, 115], [100, 106, 99], [126, 99, 107], [127, 91, 32], [150, 130, 151], [164, 168, 150], [21, 18, 19], [130, 129, 101], [128, 76, 70], [117, 131, 66], [131, 117, 118], [10, 110, 38], [25, 82, 58], [49, 48, 132], [11, 133, 12], [129, 100, 101], [34, 127, 32], [55, 131, 118], [68, 71, 88], [90, 88, 71], [53, 66, 131], [72, 75, 107], [126, 107, 75], [66, 53, 134], [49, 108, 51], [52, 41, 50], [66, 134, 65], [20, 17, 135], [134, 108, 65], [51, 108, 134], [65, 108, 109], [109, 121, 65], [109, 132, 121], [109, 49, 132], [132, 81, 121], [132, 136, 81], [132, 48, 136], [137, 136, 48], [105, 137, 48], [3, 137, 105], [105, 30, 3], [30, 105, 45], [137, 3, 138], [137, 138, 139], [138, 140, 139], [138, 141, 140], [138, 4, 141], [4, 120, 141], [142, 141, 120], [120, 143, 142], [120, 144, 143], [120, 6, 144], [144, 6, 145], [143, 144, 145], [146, 143, 145], [147, 146, 145], [147, 145, 7], [124, 147, 7], [7, 39, 124], [104, 124, 39], [115, 124, 104], [115, 104, 123], [123, 95, 115], [123, 92, 95], [85, 92, 123], [61, 92, 85], [61, 85, 84], [87, 61, 84], [69, 87, 84], [135, 22, 20], [22, 148, 23], [55, 53, 131], [54, 104, 52], [53, 51, 134], [150, 76, 149], [76, 151, 75], [10, 38, 9], [24, 0, 1], [63, 152, 62], [100, 96, 106], [150, 151, 76], [104, 39, 41], [62, 152, 10], [127, 57, 91], [103, 153, 102], [75, 151, 126], [133, 11, 154], [99, 130, 101], [130, 155, 129], [127, 119, 57], [16, 57, 119], [22, 135, 148], [124, 125, 147], [158, 157, 156], [152, 112, 10], [119, 114, 16], [139, 81, 136], [139, 136, 137], [148, 135, 159], [17, 12, 133], [135, 17, 133], [90, 72, 107], [72, 90, 71], [133, 159, 135], [160, 150, 149], [119, 35, 110], [154, 159, 133], [156, 98, 158], [158, 98, 102], [154, 148, 159], [10, 112, 110], [129, 155, 153], [161, 73, 67], [32, 91, 29], [154, 11, 148], [161, 67, 121], [56, 84, 54], [52, 104, 41], [6, 7, 145], [12, 17, 13], [139, 140, 81], [163, 162, 93], [150, 168, 155], [24, 5, 0], [160, 165, 164], [121, 122, 161], [100, 153, 103], [166, 164, 165], [73, 161, 122], [81, 78, 122], [122, 78, 73], [91, 83, 28], [11, 23, 148], [81, 79, 78], [140, 141, 167], [169, 168, 166], [78, 79, 74], [110, 111, 119], [74, 79, 70], [111, 114, 119], [128, 70, 79], [80, 128, 79], [25, 18, 21], [171, 143, 170], [58, 83, 57], [82, 25, 26], [80, 93, 128], [93, 76, 128], [28, 82, 26], [93, 149, 76], [141, 142, 172], [3, 4, 138], [158, 169, 157], [157, 173, 156], [93, 160, 149], [160, 93, 162], [163, 160, 162], [165, 160, 163], [163, 167, 165], [140, 167, 163], [140, 163, 94], [80, 140, 94], [81, 140, 80], [94, 163, 93], [167, 166, 165], [167, 172, 166], [141, 172, 167], [172, 169, 166], [172, 171, 169], [142, 171, 172], [169, 171, 170], [157, 169, 170], [170, 173, 157], [170, 146, 173], [173, 146, 174], [173, 174, 156], [174, 175, 156], [176, 175, 174], [174, 116, 176], [116, 174, 125], [125, 115, 116], [147, 125, 174], [176, 116, 177], [177, 116, 95], [95, 59, 177], [177, 59, 60], [60, 175, 177], [60, 88, 175], [60, 61, 88], [61, 86, 88], [88, 86, 87], [100, 103, 96], [175, 88, 89], [89, 98, 175], [89, 97, 98], [96, 102, 98], [97, 89, 90], [98, 156, 175], [96, 97, 106], [152, 63, 111], [146, 147, 174], [107, 97, 90], [142, 143, 171], [113, 111, 63], [34, 119, 127], [29, 91, 28], [170, 143, 146], [68, 88, 69], [113, 63, 15], [177, 175, 176], [31, 30, 45], [111, 112, 152], [113, 114, 111], [99, 106, 107], [151, 130, 126], [130, 99, 126], [9, 39, 7]] ) [points, faces]; pts_faces = bunny(); tris = [for(face = pts_faces[1]) [for(i = face) pts_faces[0][i]]]; for(t = tris) { v = cross(t[2] - t[0], t[1] - t[0]); a = [0, 90 - atan2(v.z, norm([v.x, v.y])), atan2(v.y, v.x)]; for(c = tri_circle_packing(t, min_star_r)) { translate(c[0]) rotate(a) scale(c[1]) star(n = star_burst_n); } } polyhedron(pts_faces[0], pts_faces[1]);