So, I wanted to do a little design experiment with OpenSCAD's language, to see how difficult it would be to recreate the logo of a cryptocurrency.
And also to begin experimenting with using fractal-like iterative functions and such.
The design itself wasn't too difficult. I started out with this code for a 3D pyramid base:
polyhedron(
points=[ [10,10,0],[10,-10,0],[-10,-10,0],[-10,10,0], // the four points at base
[0,0,10] ], // the apex point
faces=[ [0,1,4],[1,2,4],[2,3,4],[3,0,4], // each triangle side
[1,0,3],[2,1,3] ] // two triangles for square base
);
And adapted it into this mutated beautiful Ethereum logo module:
module segmentA(x,y,z) {
// x,y and z define the start positions of the segment's construction.
polyhedron(
points=[
//0: middle bottom middle
[2+x,2+y,0+z],
//1: side middle 1
[15+x,-5+y,0+z],
//2: upwards tip
[-10+x,-10+y,0+z],
//3: side middle 2 (x1 = y2, x2=y1, to keep proportions)
[-5+x,15+y,0+z],
//4: upwards top point
[2+x,2+y,10+z],
//5: downwards tip
[10+x,10+y,0+z]
],
faces=[
// connect the points given with a face. the order is important. the GSC geometry system won't properly render it
// if the order is out of sync. luckily with only 3 points I could shuffle it around till it worked hehe.
// But the overall idea is that there's an order for a face to be constructed in. so a face is valid if you connect A to B to C
// but invalid if you do it in the wrong direction, like A to C to B.
[5,1,4],
[1,2,4],
[2,3,4],
[3,5,4],
[5,3,0],
[5,0,1], // example -> [5,1,0] won't generate a face when rendering the model completely.
[0,3,2],
[0,2,1]
]
);
};
module segmentB(x,y,z) {
// x,y and z define the start positions of this segment's construction.
polyhedron(
points=[
[-3+x,-3+y,0+z],
[15+x,-7+y,0+z],
[-15+x,-15+y,0+z],
[-7+x,15+y,0+z],
[-1+x,-1+y,10+z]
],
faces=[
[0,1,4],
[1,2,4],
[2,3,4],
[3,0,4],
[0,3,2],
[0,2,1]
]
);
};
module EthereumLogo(x=0,y=0,z=0){
segmentA(0+x,0+y,0+z);
rotate([0,0,180])
segmentB(-10+x,-10+y,0+z);
}
EthereumLogo();
So... shall we play around with it a bit then ?
spiral to heaven
for(num = [0 : 10: 1000]){
rotate([0,0,num])
translate([0,(num/2),(num/10)*5])
EthereumLogo(0,0,0);
}
stylished 3D form
module EthereumLogo(x=0,y=0,z=0){
union(){segmentA(0+x,0+y,0+z);
rotate([0,180,-90])
translate([0,0,-2])
segmentA(0+x,0+y,0+z);
}
union(){
rotate([0,0,180])
segmentB(-10-x,-10+y,0+z);
rotate([0,0,90])
rotate([0,180,0])
translate([0,0,-2])
segmentB(-10-x,-10+y,0+z);
}
hmm.... I wonder if it'd be interesting to create a github project to collect crypto logos remade in 3D using OpenSCAD or other tools, and having them all be under CC so everyone could reuse them for their art or projects.
any takers on such an idea ?
Above code and images released under a CC BY license, when not indicated otherwise (like Mr.pyramid above)
Nice post... i like 3d design in cryptocurency....maybe someday i wan to use sketchup and lumion in drawing...
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
glad you like it :)
I tried to test sketchup a few months ago on my old computer, but it couldn't run it.
I've seen lots of good things about it, so I'll have to check it out again.
Never heard of lumion though, what kind of tool is it ?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
thank you for using cc :D
sticker art , badge of honor created by @drawingly
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
thanks for the awesome badge :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you for your contribution!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit