Platonic Solids
Platonic solids are five 3-dimensional shapes whose faces are also regular 2-dimensional shapes; all edges of a Platonic solid are the same length and all of its internal angles are the same size. The five Platonic solids are:
the tetrahedron
the cube (already in picoCAD )
the octahedron
the dodecahedron
the icosahedron
Most of the Platonic solids included in this file are provided in two forms: on-grid and off-grid. The coordinates for on-grid forms are in steps of 0.25; the coordinates for off-grid forms are much more precise. However, the differences are still pretty small.
Tetrahedron
The regular tetrahedron has 4 vertices and 4 faces, each an equilateral triangle.
This is the data for an on-grid tetrahedron:
{
name='tetrahedron', pos={0,0,0}, rot={0,0,0},
v={
{1,0.5,0},
{-0.5,0.5,0.75},
{-0.5,0.5,-0.75},
{0,-0.75,0}
},
f={
{3,1,2, c=11, uv={3,0,2,1.25,1,0} },
{4,2,1, c=11, uv={8,1.25,9,0,7,0} },
{4,1,3, c=11, uv={6,1.25,5,0,7,0} },
{2,4,3, c=11, uv={5,0,4,1.25,3,0} }
}
}
This is the data for an off-grid, i.e. more-perfect, tetrahedron:
{
name='tetrahedron', pos={0,0,0}, rot={0,0,0},
v={
{0.943,0.5,0},
{-0.471,0.5,0.816},
{-0.471,0.5,-0.816},
{0,-0.8329,0}
},
f={
{3,1,2, c=11, uv={3,0,2,1.25,1,0} },
{4,2,1, c=11, uv={8,1.25,9,0,7,0} },
{4,1,3, c=11, uv={6,1.25,5,0,7,0} },
{2,4,3, c=11, uv={5,0,4,1.25,3,0} }
}
}
On-grid
Off-grid
Octahedron
The regular octahedron has 6 vertices and 8 faces, each an equilateral triangle.
Octahedral coordinates are all on-grid, so there's only one form:
{
name='octahedron', pos={0,0,0}, rot={0,0,0},
v={
{1,0,0},
{-1,0,0},
{0,1,0},
{0,-1,0},
{0,0,1},
{0,0,-1}
},
f={
{4,5,1, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{4,1,6, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{4,6,2, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{4,2,5, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{3,1,5, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{3,5,2, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{3,2,6, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{3,6,1, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} }
}
}
On-grid
A triangular antiprism is technically also an octahedron, but the two shapes in this guide are oriented differently.
Dodecahedron
The regular dodecahedron has 20 vertices and 12 faces, each a regular pentagon.
This is the data for an on-grid dodecahedron:
{
name='dodecahedron', pos={0,0,0}, rot={0,0,0},
v={
{-1,-1,1},
{1,-1,1},
{-1,1,1},
{-1,-1,-1},
{1,1,1},
{1,-1,-1},
{-1,1,-1},
{1,1,-1},
{-1.5,-0.5,0},
{1.5,-0.5,0},
{-1.5,0.5,0},
{1.5,0.5,0},
{0,-1.5,0.5},
{0,-1.5,-0.5},
{0,1.5,0.5},
{0,1.5,-0.5},
{-0.5,0,1.5},
{-0.5,0,-1.5},
{0.5,0,1.5},
{0.5,0,-1.5}
},
f={
{2,19,5,12,10, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{6,10,12,8,20, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{10,6,14,13,2, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{1,17,19,2,13, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{3,15,5,19,17, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{5,15,16,8,12, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{15,3,11,7,16, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{16,7,18,20,8, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{18,4,14,6,20, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{9,1,13,14,4, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{1,9,11,3,17, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{9,4,18,7,11, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} }
}
}
This is the data for an off-grid, i.e. more-perfect, dodecahedron:
{
name='dodecahedron', pos={0,0,0}, rot={0,0,0},
v={
{-1,-1,1},
{1,-1,1},
{-1,1,1},
{-1,-1,-1},
{1,1,1},
{1,-1,-1},
{-1,1,-1},
{1,1,-1},
{-1.618,-0.618,0},
{1.618,-0.618,0},
{-1.618,0.618,0},
{1.618,0.618,0},
{0,-1.618,0.618},
{0,-1.618,-0.618},
{0,1.618,0.618},
{0,1.618,-0.618},
{-0.618,0,1.618},
{-0.618,0,-1.618},
{0.618,0,1.618},
{0.618,0,-1.618}
},
f={
{2,19,5,12,10, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{6,10,12,8,20, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{10,6,14,13,2, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{1,17,19,2,13, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{3,15,5,19,17, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{5,15,16,8,12, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{15,3,11,7,16, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{16,7,18,20,8, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{18,4,14,6,20, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{9,1,13,14,4, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{1,9,11,3,17, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{9,4,18,7,11, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} }
}
}
On-grid
Off-grid
Icosahedron
The regular icosahedron has 12 vertices and 20 faces, each an equilateral triangle.
This is the data for an on-grid icosahedron:
{
name='icosahedron', pos={0,0,0}, rot={0,0,0},
v={
{0,1,1.5},
{0,-1,1.5},
{0,1,-1.5},
{0,-1,-1.5},
{1,1.5,0},
{-1,1.5,0},
{1,-1.5,0},
{-1,-1.5,0},
{1.5,0,1},
{-1.5,0,1},
{1.5,0,-1},
{-1.5,0,-1}
},
f={
{1,6,5, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{1,5,9, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{1,9,2, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{1,2,10, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{1,10,6, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{4,8,7, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{4,7,11, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{4,11,3, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{4,3,12, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{4,12,8, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{2,9,7, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{8,2,7, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{10,2,8, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{12,10,8, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{6,10,12, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{3,6,12, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{5,6,3, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{11,5,3, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{9,5,11, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{7,9,11, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} }
}
}
This is the data for an off-grid, i.e. more-perfect, icosahedron:
{
name='icosahedron', pos={0,0,0}, rot={0,0,0},
v={
{0,1,1.618},
{0,-1,1.618},
{0,1,-1.618},
{0,-1,-1.618},
{1,1.618,0},
{-1,1.618,0},
{1,-1.618,0},
{-1,-1.618,0},
{1.618,0,1},
{-1.618,0,1},
{1.618,0,-1},
{-1.618,0,-1}
},
f={
{1,6,5, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{1,5,9, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{1,9,2, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{1,2,10, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{1,10,6, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{4,8,7, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{4,7,11, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{4,11,3, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{4,3,12, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{4,12,8, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{2,9,7, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{8,2,7, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{10,2,8, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{12,10,8, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{6,10,12, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{3,6,12, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{5,6,3, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{11,5,3, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{9,5,11, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} },
{7,9,11, c=8, uv={2,0.5,2.5,1.5,1.5,1.5} }
}
}
On-grid
Off-grid
Pyramids
picoCAD includes square pyramids by default, and the Platonic solids above include triangular pyramids (as tetrahedrons ), but no larger bases.
This file includes pyramids of the larger prisms included in picoCAD 's primitive shapes.
Pentagonal pyramid
{
name='pent_pyramid', pos={0,0,0}, rot={0,0,0},
v={
{0.75,0.5,0.5},
{-0.25,0.5,0.75},
{-0.75,0.5,0},
{-0.25,0.5,-0.75},
{0.75,0.5,-0.5},
{0,-0.5,0}
},
f={
{1,2,3,4,5, c=14, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{2,6,3, c=14, uv={7.5,1.5,7.5,0.5,8.5,0.5} },
{3,6,4, c=14, uv={7.5,1.5,7.5,0.5,8.5,0.5} },
{4,6,5, c=14, uv={7.5,1.5,7.5,0.5,8.5,0.5} },
{5,6,1, c=14, uv={8.5,0.5,8.5,1.5,7.5,1.5} },
{1,6,2, c=14, uv={7.5,1.5,7.5,0.5,8.5,0.5} }
}
}
Hexagonal pyramid
{
name='hex_pyramid', pos={0,0,0}, rot={0,0,0},
v={
{-0.75,0.5,0.5},
{-0.75,0.5,-0.5},
{0,0.5,-1},
{0.75,0.5,-0.5},
{0.75,0.5,0.5},
{0,0.5,1},
{0,-0.5,0}
},
f={
{1,2,3,4,5,6, c=13, uv={9.5,0.25,10.5,0.25,11,1,10.5,1.75,9.5,1.75,9,1} },
{2,7,3, c=13, uv={10.5,0.5,10.5,1.5,9.5,1.5} },
{3,7,4, c=13, uv={10.5,0.5,10.5,1.5,9.5,1.5} },
{4,7,5, c=13, uv={10.5,0.5,10.5,1.5,9.5,1.5} },
{5,7,6, c=13, uv={9.5,1.5,9.5,0.5,10.5,0.5} },
{6,7,1, c=13, uv={10.5,0.5,10.5,1.5,9.5,1.5} },
{1,7,2, c=13, uv={10.5,0.5,10.5,1.5,9.5,1.5} }
}
}
Octagonal pyramid
{
name='oct_pyramid', pos={0,0,0}, rot={0,0,0},
v={
{-0.75,0.5,-0.25},
{-0.25,0.5,-0.75},
{0.25,0.5,-0.75},
{0.75,0.5,-0.25},
{0.75,0.5,0.25},
{0.25,0.5,0.75},
{-0.25,0.5,0.75},
{-0.75,0.5,0.25},
{0,-0.5,0}
},
f={
{1,2,3,4,5,6,7,8, c=9, uv={11.5,0,12.5,0,13,0.5,13,1.5,12.5,2,11.5,2,11,1.5,11,0.5} },
{1,9,2, c=9, uv={12.5,0.5,12.5,1.5,11.5,1.5} },
{2,9,3, c=9, uv={12.5,0.5,12.5,1.5,11.5,1.5} },
{3,9,4, c=9, uv={12.5,0.5,12.5,1.5,11.5,1.5} },
{4,9,5, c=9, uv={12.5,0.5,12.5,1.5,11.5,1.5} },
{5,9,6, c=9, uv={12.5,0.5,12.5,1.5,11.5,1.5} },
{6,9,7, c=9, uv={12.5,0.5,12.5,1.5,11.5,1.5} },
{7,9,8, c=9, uv={12.5,0.5,12.5,1.5,11.5,1.5} },
{8,9,1, c=9, uv={12.5,0.5,12.5,1.5,11.5,1.5} }
}
}
Antiprisms
Antiprisms are like ordinary prisms, in that they have two end faces that share the same shape connected by joining faces. In an ordinary prism, the joining faces have four sides. In an antiprism, they have three sides, and there are twice as many. Think of them as being like ordinary prisms, but the square faces on the sides are each split into two triangles from opposite corners.
This file includes antiprism versions of every prism included in picoCAD 's primitive shapes.
Triangular antiprism
{
name='tri_antiprism', pos={0,0,0}, rot={0,0,0},
v={
{0,0.75,-1},
{0.75,0.75,0.5},
{-0.75,0.75,0.5},
{0,-0.75,1},
{0.75,-0.75,-0.5},
{-0.75,-0.75,-0.5}
},
f={
{1,2,3, c=7, uv={4,0.5,4.5,1.5,3.5,1.5} },
{5,6,4, c=7, uv={4,0.5,4.5,1.5,3.5,1.5} },
{1,5,2, c=8, uv={3.5,0.5,4.5,0.5,4.5,1.5,3.5,1.5} },
{2,5,4, c=9, uv={3.5,0.5,4.5,0.5,4.5,1.5,3.5,1.5} },
{4,3,2, c=8, uv={3.5,0.5,4.5,0.5,4.5,1.5,3.5,1.5} },
{3,4,6, c=9, uv={3.5,0.5,4.5,0.5,4.5,1.5,3.5,1.5} },
{6,1,3, c=8, uv={3.5,0.5,4.5,0.5,4.5,1.5,3.5,1.5} },
{1,6,5, c=9, uv={3.5,0.5,4.5,0.5,4.5,1.5,3.5,1.5} }
}
}
An octahedron is technically also a triangular antiprism, but the two shapes in this guide are oriented differently.
Square antiprism
{
name='quad_antiprism', pos={0,0,0}, rot={0,0,0},
v={
{0,-0.5,-0.75},
{0.75,-0.5,0},
{0.5,0.5,-0.5},
{-0.5,0.5,-0.5},
{-0.75,-0.5,0},
{0,-0.5,0.75},
{0.5,0.5,0.5},
{-0.5,0.5,0.5}
},
f={
{1,2,3, c=12, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{1,3,4, c=11, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{6,5,8, c=12, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{6,8,7, c=11, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{5,6,2,1, c=8, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{5,1,4, c=12, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{5,4,8, c=11, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{2,6,7, c=12, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{2,7,3, c=11, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{4,3,7,8, c=8, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} }
}
}
Pentagonal antiprism
{
name='pent_antiprism', pos={0,0,0}, rot={0,0,0},
v={
{0.75,0.5,0.5},
{-0.25,0.5,0.75},
{-0.75,0.5,0},
{-0.25,0.5,-0.75},
{0.75,0.5,-0.5},
{0.75,-0.5,0},
{0.25,-0.5,0.75},
{-0.75,-0.5,0.5},
{-0.75,-0.5,-0.5},
{0.25,-0.5,-0.75}
},
f={
{1,2,3,4,5, c=12, uv={7.5,1.5,7.25,0.5,8,0,8.75,0.5,8.5,1.5} },
{7,6,10,9,8, c=12, uv={8.75,0.5,8.5,1.5,7.5,1.5,7.25,0.5,8,0} },
{2,7,8, c=10, uv={7.5,1.5,7.5,0.5,8.5,0.5,8.5,1.5} },
{2,8,3, c=8, uv={7.5,1.5,7.5,0.5,8.5,0.5,8.5,1.5} },
{3,8,9, c=10, uv={7.5,1.5,7.5,0.5,8.5,0.5,8.5,1.5} },
{3,9,4, c=8, uv={7.5,1.5,7.5,0.5,8.5,0.5,8.5,1.5} },
{4,9,10, c=10, uv={7.5,1.5,7.5,0.5,8.5,0.5,8.5,1.5} },
{4,10,5, c=8, uv={7.5,1.5,7.5,0.5,8.5,0.5,8.5,1.5} },
{6,1,5, c=8, uv={8.5,0.5,8.5,1.5,7.5,1.5,7.5,0.5} },
{6,5,10, c=10, uv={8.5,0.5,8.5,1.5,7.5,1.5,7.5,0.5} },
{1,6,7, c=10, uv={7.5,1.5,7.5,0.5,8.5,0.5,8.5,1.5} },
{1,7,2, c=8, uv={7.5,1.5,7.5,0.5,8.5,0.5,8.5,1.5} }
}
}
Hexagonal antiprism
{
name='hex_antiprism', pos={0,0,0}, rot={0,0,0},
v={
{1,-0.5,0},
{0.5,-0.5,-0.75},
{-0.5,-0.5,-0.75},
{-1,-0.5,0},
{-0.5,-0.5,0.75},
{0.5,-0.5,0.75},
{0.75,0.5,0.5},
{0.75,0.5,-0.5},
{0,0.5,-1},
{-0.75,0.5,-0.5},
{-0.75,0.5,0.5},
{0,0.5,1}
},
f={
{1,2,3,4,5,6, c=15, uv={9.5,0.25,10.5,0.25,11,1,10.5,1.75,9.5,1.75,9,1} },
{8,7,12,11,10,9, c=15, uv={9.5,0,10.5,0,11,1,10.5,2,9.5,2,9,1} },
{2,8,9, c=13, uv={10.5,0.5,10.5,1.5,9.5,1.5,9.5,0.5} },
{2,9,3, c=3, uv={10.5,0.5,10.5,1.5,9.5,1.5,9.5,0.5} },
{3,9,10, c=13, uv={10.5,0.5,10.5,1.5,9.5,1.5,9.5,0.5} },
{3,10,4, c=3, uv={10.5,0.5,10.5,1.5,9.5,1.5,9.5,0.5} },
{4,10,11, c=13, uv={10.5,0.5,10.5,1.5,9.5,1.5,9.5,0.5} },
{4,11,5, c=3, uv={10.5,0.5,10.5,1.5,9.5,1.5,9.5,0.5} },
{12,6,5, c=3, uv={9.5,1.5,9.5,0.5,10.5,0.5,10.5,1.5} },
{12,5,11, c=13, uv={9.5,1.5,9.5,0.5,10.5,0.5,10.5,1.5} },
{6,12,7, c=13, uv={10.5,0.5,10.5,1.5,9.5,1.5,9.5,0.5} },
{6,7,1, c=3, uv={10.5,0.5,10.5,1.5,9.5,1.5,9.5,0.5} },
{1,7,8, c=13, uv={10.5,0.5,10.5,1.5,9.5,1.5,9.5,0.5} },
{1,8,2, c=3, uv={10.5,0.5,10.5,1.5,9.5,1.5,9.5,0.5} }
}
}
Octagonal antiprism
{
name='oct_antiprism', pos={0,0,0}, rot={0,0,0},
v={
{0.5,-0.5,-0.5},
{0,-0.5,-0.75},
{-0.5,-0.5,-0.5},
{-0.75,-0.5,0},
{-0.5,-0.5,0.5},
{0,-0.5,0.75},
{0.5,-0.5,0.5},
{0.75,-0.5,0},
{0.75,0.5,-0.25},
{0.25,0.5,-0.75},
{-0.25,0.5,-0.75},
{-0.75,0.5,-0.25},
{-0.75,0.5,0.25},
{-0.25,0.5,0.75},
{0.25,0.5,0.75},
{0.75,0.5,0.25}
},
f={
{1,2,3,4,5,6,7,8, c=4, uv={11.5,0,12.5,0,13,0.5,13,1.5,12.5,2,11.5,2,11,1.5,11,0.5} },
{16,15,14,13,12,11,10,9, c=4, uv={11,0.5,11.5,0,12.5,0,13,0.5,13,1.5,12.5,2,11.5,2,11,1.5} },
{1,9,10, c=0, uv={12.5,0.5,12.5,1.5,11.5,1.5,11.5,0.5} },
{1,10,2, c=7, uv={12.5,0.5,12.5,1.5,11.5,1.5,11.5,0.5} },
{2,10,11, c=0, uv={12.5,0.5,12.5,1.5,11.5,1.5,11.5,0.5} },
{2,11,3, c=7, uv={12.5,0.5,12.5,1.5,11.5,1.5,11.5,0.5} },
{3,11,12, c=0, uv={12.5,0.5,12.5,1.5,11.5,1.5,11.5,0.5} },
{3,12,4, c=7, uv={12.5,0.5,12.5,1.5,11.5,1.5,11.5,0.5} },
{4,12,13, c=0, uv={12.5,0.5,12.5,1.5,11.5,1.5,11.5,0.5} },
{4,13,5, c=7, uv={12.5,0.5,12.5,1.5,11.5,1.5,11.5,0.5} },
{5,13,14, c=0, uv={12.5,0.5,12.5,1.5,11.5,1.5,11.5,0.5} },
{5,14,6, c=7, uv={12.5,0.5,12.5,1.5,11.5,1.5,11.5,0.5} },
{6,14,15, c=0, uv={12.5,0.5,12.5,1.5,11.5,1.5,11.5,0.5} },
{6,15,7, c=7, uv={12.5,0.5,12.5,1.5,11.5,1.5,11.5,0.5} },
{7,15,16, c=0, uv={12.5,0.5,12.5,1.5,11.5,1.5,11.5,0.5} },
{7,16,8, c=7, uv={12.5,0.5,12.5,1.5,11.5,1.5,11.5,0.5} },
{8,16,9, c=0, uv={12.5,0.5,12.5,1.5,11.5,1.5,11.5,0.5} },
{8,9,1, c=7, uv={12.5,0.5,12.5,1.5,11.5,1.5,11.5,0.5} }
}
}
Home
picoCAD is a neat lo-fi 3D modelling tool with a very small range of default shapes: cubes, a few types of prism, square pyramids, and planes. You can edit these by deleting or extruding faces. However, if you open a picoCAD project file in a text editor you can directly edit existing shapes or even build new ones by adding corners/vertices and faces. This guide includes mesh data for 12 new shapes you can copy directly into a picoCAD file.
The shape demo images were processed using Lucatronica's picoCAD web viewer .
Using These Shapes
Save your project file in picoCAD , then select “View files”, find your project, and open it in a text editor.
Find the percent sign (%
) in the file, which comes before the texture data at the end. Before the percent sign there's a closing/right brace (}
) marking the end of the list of objects in the file. Each object is then wrapped in its own pair of braces ({…}
).
Add a comma after the last shape's closing brace, then paste in the custom shape data afterwards.
Save the project file in the text editor, then drag and drop it back into picoCAD to load it back into the app.
For example, here's how a project file with a single cube starts:
picocad;demo;16;1;0
{
{
name='cube', pos={0,0,0}, rot={0,0,0},
v={
{-0.5,-0.5,-0.5},
{0.5,-0.5,-0.5},
{0.5,0.5,-0.5},
{-0.5,0.5,-0.5},
{-0.5,-0.5,0.5},
{0.5,-0.5,0.5},
{0.5,0.5,0.5},
{-0.5,0.5,0.5}
},
f={
{1,2,3,4, c=11, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{6,5,8,7, c=11, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{5,6,2,1, c=11, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{5,1,4,8, c=11, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{2,6,7,3, c=11, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{4,3,7,8, c=11, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} }
}
}
}%
Which looks (something) like this:
If you wanted to add a tetrahedron , you'd add a comma after the last shape in the list (the cube), then paste in the tetrahedron's data afterwards (new text is marked ):
picocad;demo;16;1;0
{
{
name='cube', pos={0,0,0}, rot={0,0,0},
v={
{-0.5,-0.5,-0.5},
{0.5,-0.5,-0.5},
{0.5,0.5,-0.5},
{-0.5,0.5,-0.5},
{-0.5,-0.5,0.5},
{0.5,-0.5,0.5},
{0.5,0.5,0.5},
{-0.5,0.5,0.5}
},
f={
{1,2,3,4, c=11, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{6,5,8,7, c=11, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{5,6,2,1, c=11, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{5,1,4,8, c=11, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{2,6,7,3, c=11, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} },
{4,3,7,8, c=11, uv={5.5,0.5,6.5,0.5,6.5,1.5,5.5,1.5} }
}
},{
name='tetrahedron', pos={0,0,0}, rot={0,0,0},
v={
{0.943,0.5,0},
{-0.471,0.5,0.816},
{-0.471,0.5,-0.816},
{0,-0.8329,0}
},
f={
{3,1,2, c=11, uv={3,0,2,1.25,1,0} },
{4,2,1, c=11, uv={8,1.25,9,0,7,0} },
{4,1,3, c=11, uv={6,1.25,5,0,7,0} },
{2,4,3, c=11, uv={5,0,4,1.25,3,0} }
}
}
}%
Which looks (something) like this:
Errors
If your project file's improperly formatted then picoCAD will immediately crash when you load it in. Don't worry, your file's safe—you just need to fix whatever problem's written in there. Close the app and go back to your project file in a text editor.
Double-check that your file's formatted as described above: the whole list of objects should be wrapped in braces, each object should be wrapped in its own set of braces, and each object except the last should have a comma after its closing brace.