Thingiverse
Cellular automaton BlocksCAD snowflake generator by arpruss
by Thingiverse
Last crawled date: 3 years ago
This is a randomizable and customizable cellular automaton snowflake generator in BlocksCAD. It comes in two versions, a 20-level version (board radius up to 20) and a 40-level version. The 40-level version is just barely within the limits of BlocksCAD abilities: BlocksCAD becomes sluggish but it still works (I recommend using Firefox instead of Chrome for much better responsiveness).
A more realistic simulation is here.
The automaton puts down a live (colored) hex at the middle of the board, and then follows evolution rules (like in Conway's Game of Life). The default rule set (darker blue screenshots) is Stephen Wolfram's: a live cell survives forever, and a new cell generates when it has exactly one live neighbor.
You can vary the rule set by varying what effect different numbers of live neighbors (0-6) have on survival or generation. You can also set indeterministic rules, where there are probabilities between 0 and 1 of survival or generation in the different neighbor count cases. In indeterministic cases, snowflake symmetry (six fold rotational, plus reflection) is still enforced by the code.
The light blue images were made with an indeterministic rule set where the only change made was to set the probability of generation when there is one neighbor to 0.5, so the generation parameters were 0,0.5,0,0,0,0,0. These images look more snowflake-like to me. Another interesting set of generation parameters is 0,0.5,0,0.1,0,0,1 (0.5 chance of generation with one neighbor; 0.1 chance with 3 neighbors, certainty with 6 neighbors).
You can post in comments what are some interesting rule sets. The default rule and its above probabilistic variant are quite printable. Rules where all the survival probabilities are 1 will result in completely connected snowflakes. If some survival probabilities are less than 1, there may be outliers.
The OpenSCAD-based Customizer was generated by exporting OpenSCAD code from BlocksCAD, and moving the variable definitions to the top of the file for Customizer compatibility.
If you turn on color shading (by having different color1 and color2 settings), the color shading goes by the step during which a cell was generated. You can also turn on periodic banding for a special color effect.
It was difficult to implement a cellular automaton in BlocksCAD since BlocksCAD does not support arrays and, for further complication, is a functional language.
To speed up the code, the cellular automaton is only implemented on a 1/12 segment of the board, with the rest reconstructed by symmetry.
The heart of the code is a giant recursive evolve module that (in the radius 40 version) takes 421 arguments. The first argument counts iterations. The remaining 420 arguments each store one cell of data. If the the iteration count reaches 0, then evolve calls draw(i,j,v) for each cell. It has to do this by a union of 420 invocation, since there are no arrays and hence no way of iterating over the arguments. The draw(i,j,v) function draws the hex if v is non-zero, as well as drawing the up to 11 other hexes that are related to it by the snowflake symmetries.
Next, the evolve module recursively calls itself with the iteration count decremented, and each cell argument evolved. The evolution of the cell arguments is done by adding up the neighbor counts for each argument checking to see if the cell should be alive. There is a hard-coded call to a cell evolution function for every single one of the 420 arguments.
There is also a go module that calls evolve with its 421 (radius 40 version) initial arguments: an iterations count, follows by a central 1, followed by zeroes. Finally, the code linearly extrudes the output of the go module to make it 3D.
At this point you might think I was crazy to drag-and-drop evolution code for every one of 420 cells in evolve. Well, I didn't. I wrote a quick-and-dirty python script (included as blockscad.py and cell6.py: the latter is the main script) which can generate a subset of BlocksCAD xml code, and used it to automatically generates the giant evolve module that calls cell for each cell, and the big go module.
The rest of the code was manually entered in BlocksCAD: the go module, some top-level code, the cell evolution function, and the draw module.
Assembling all the code in BlocksCAD was a bit of work. Most of the manually entered code was saved to xml as a backup (included as the "hand code"). Then I imported the xml file generated by python into BlocksCAD. Then I added the extrusion wrapper around the go module. (Or at least that's how I did it when I finally figured out how to make it work.) I then made some optimizations.
https://youtu.be/sJjrz4mL5aA
A more realistic simulation is here.
The automaton puts down a live (colored) hex at the middle of the board, and then follows evolution rules (like in Conway's Game of Life). The default rule set (darker blue screenshots) is Stephen Wolfram's: a live cell survives forever, and a new cell generates when it has exactly one live neighbor.
You can vary the rule set by varying what effect different numbers of live neighbors (0-6) have on survival or generation. You can also set indeterministic rules, where there are probabilities between 0 and 1 of survival or generation in the different neighbor count cases. In indeterministic cases, snowflake symmetry (six fold rotational, plus reflection) is still enforced by the code.
The light blue images were made with an indeterministic rule set where the only change made was to set the probability of generation when there is one neighbor to 0.5, so the generation parameters were 0,0.5,0,0,0,0,0. These images look more snowflake-like to me. Another interesting set of generation parameters is 0,0.5,0,0.1,0,0,1 (0.5 chance of generation with one neighbor; 0.1 chance with 3 neighbors, certainty with 6 neighbors).
You can post in comments what are some interesting rule sets. The default rule and its above probabilistic variant are quite printable. Rules where all the survival probabilities are 1 will result in completely connected snowflakes. If some survival probabilities are less than 1, there may be outliers.
The OpenSCAD-based Customizer was generated by exporting OpenSCAD code from BlocksCAD, and moving the variable definitions to the top of the file for Customizer compatibility.
If you turn on color shading (by having different color1 and color2 settings), the color shading goes by the step during which a cell was generated. You can also turn on periodic banding for a special color effect.
It was difficult to implement a cellular automaton in BlocksCAD since BlocksCAD does not support arrays and, for further complication, is a functional language.
To speed up the code, the cellular automaton is only implemented on a 1/12 segment of the board, with the rest reconstructed by symmetry.
The heart of the code is a giant recursive evolve module that (in the radius 40 version) takes 421 arguments. The first argument counts iterations. The remaining 420 arguments each store one cell of data. If the the iteration count reaches 0, then evolve calls draw(i,j,v) for each cell. It has to do this by a union of 420 invocation, since there are no arrays and hence no way of iterating over the arguments. The draw(i,j,v) function draws the hex if v is non-zero, as well as drawing the up to 11 other hexes that are related to it by the snowflake symmetries.
Next, the evolve module recursively calls itself with the iteration count decremented, and each cell argument evolved. The evolution of the cell arguments is done by adding up the neighbor counts for each argument checking to see if the cell should be alive. There is a hard-coded call to a cell evolution function for every single one of the 420 arguments.
There is also a go module that calls evolve with its 421 (radius 40 version) initial arguments: an iterations count, follows by a central 1, followed by zeroes. Finally, the code linearly extrudes the output of the go module to make it 3D.
At this point you might think I was crazy to drag-and-drop evolution code for every one of 420 cells in evolve. Well, I didn't. I wrote a quick-and-dirty python script (included as blockscad.py and cell6.py: the latter is the main script) which can generate a subset of BlocksCAD xml code, and used it to automatically generates the giant evolve module that calls cell for each cell, and the big go module.
The rest of the code was manually entered in BlocksCAD: the go module, some top-level code, the cell evolution function, and the draw module.
Assembling all the code in BlocksCAD was a bit of work. Most of the manually entered code was saved to xml as a backup (included as the "hand code"). Then I imported the xml file generated by python into BlocksCAD. Then I added the extrusion wrapper around the go module. (Or at least that's how I did it when I finally figured out how to make it work.) I then made some optimizations.
https://youtu.be/sJjrz4mL5aA
Similar models
thingiverse
free
Snowflake growth simulation in BlocksCAD by arpruss
...de, and the parameter initialization code was hand-written in blockscad.
https://youtu.be/kzh0zb992zyhttps://youtu.be/812hehzrehk
thingiverse
free
Cellular automaton snowflake generator in OpenSCAD by arpruss
...ing nodes are joined with a fat line instead of there being a hex at them.
december 2018 update: you can now set the random seed.
thingiverse
free
Randomized Hex Snowflakes with BlocksCAD by bitwi
...the render button until you see a snowflake you like, then click the generate stl button to download it!
thank you! and enjoy! :)
thingiverse
free
The BlocksCAD Snowflake by zembacraftworks
... customized by importing the included xml file into blockscad.
project page: https://www.blockscad3d.com/community/projects/67762
thingiverse
free
BlocksCAD Snowflake 1 by 3DDreamBox
...tps://www.blockscad3d.com/
check out our website:http://www.3ddreambox.com
like us on facebookhttps://www.facebook.com/3ddreambox
thingiverse
free
BlocksCAD Snowflake Ornament by OpenScadDad
...day ornament. i re-worked it from openscad to blockscad for the challenge.
both the ornament and the blockscad code are elegant.
thingiverse
free
Nice Random Snowflake Generator by maccesch
...generate your own load the xml file into blockscad and every time you click "render" a new unique snowflake is created.
thingiverse
free
BlocksCAD code by menD3i
...scad code by mend3i
thingiverse
this is the world simpliest snowflake and it' blockscad code.
you can print the code itself!
thingiverse
free
Snowflake made with BLocksCAD by uldtot
.... added colors for some of the objects to make it easier for myself to figure out how they turned when changin angles and widths.
thingiverse
free
Random Abstract Snowflake Generator by SlothOne
...thone
thingiverse
this is a very simple snowflake generator that i have designed and made for the blockscad snowflake challenge.
Automaton
turbosquid
$1
Sentry Automaton
...
royalty free 3d model sentry automaton for download as blend on turbosquid: 3d models for games, architecture, videos. (1665402)
turbosquid
$48
Automaton Car Clock
...d model automaton car clock for download as max, fbx, and obj on turbosquid: 3d models for games, architecture, videos. (1612785)
turbosquid
$128
Automaton Industrial Series Clocks
...ial series clocks for download as max, max, fbx, obj, and max on turbosquid: 3d models for games, architecture, videos. (1621475)
turbosquid
$49
Sci-Fi Mech Robot Automaton Soldier Military 02 Kitbash
...ch 02 kitbash for download as max, ma, 3ds, dae, fbx, and obj on turbosquid: 3d models for games, architecture, videos. (1631971)
turbosquid
$29
Sci-Fi Mech Robot Automaton Soldier Military 01 Kitbash
... mech kitbash for download as max, ma, 3ds, dae, fbx, and obj on turbosquid: 3d models for games, architecture, videos. (1597521)
turbosquid
$59
Sci-Fi Mech Robot Automaton Soldier 01 - PROJECT VERSION with ZBRUSH and SUBSTANCE PAINTER FILES
...ncluded) for download as max, ma, ztl, 3ds, dae, fbx, and obj on turbosquid: 3d models for games, architecture, videos. (1597231)
turbosquid
$45
Sci-Fi Mech Robot Automaton Kitbash Parts Collection - Armored Legs with ZBRUSH FILES INCLUDED
...included for download as max, ma, ztl, fbx, 3ds, obj, and dae on turbosquid: 3d models for games, architecture, videos. (1641308)
3d_export
$129
mikez and jakez
...mikez and jakez 3dexport mikez and jakez automaton 3d model. real-time ready, multiple import formats<br>thank you for...
3d_export
$50
21630 Buyan Small Artillery Ship 3D Model
...artillery ship 3d model 3dexport rocket ship artillery army automaton sea ocean 21630 buyan small artillery ship 3d model...
free3d
free
Animated automaton with coffee
...animated automaton with coffee
free3d
animated automaton with coffee
Arpruss
thingiverse
free
Watch band part by arpruss
...watch band part by arpruss
thingiverse
my son needed this.
thingiverse
free
Smiley face stencil by arpruss
...smiley face stencil by arpruss
thingiverse
simple smiley face stencil.
thingiverse
free
Folding chair foot by arpruss
...folding chair foot by arpruss
thingiverse
quick and dirty folding chair foot. customizable.
thingiverse
free
Customizable hex maze by arpruss
...customizable hex maze by arpruss
thingiverse
generates a hex-cell maze using recursive backtracking.
thingiverse
free
Customizable cable clip by arpruss
...ustomizable cable clip by arpruss
thingiverse
this is a simple customizable cable clip.
this uses and bundles my bezier library.
thingiverse
free
Customizable unicorn horn by arpruss
...ingiverse
customize twist, rounding, height, diameter and number of lobes.
uses (and bundles) my tube mesh and bezier libraries.
thingiverse
free
Wooden railway bridge support by arpruss
...wooden railway bridge support by arpruss
thingiverse
yet another support for brio-style wooden railroad bridges. customizable.
thingiverse
free
Saturn cookie cutter by arpruss
...tter was generated with inkscape and some plugins. instructions on how to do this are here. you can customize various dimensions.
thingiverse
free
Randomized leafy snowflake by arpruss
...domized snowflake generator for blockscad (with an openscad-based customizer exported from it, and variables moved to beginning).
thingiverse
free
Smiley face by arpruss
...inflation scripts. there is a positive version where the eyes and mouth stick out, and a negative version where they are cut out.
Blockscad
thingiverse
free
BlocksCAD Rose by BlocksCAD
...blockscad rose by blockscad
thingiverse
using blockscad software, you can design some 3d valentines!
thingiverse
free
BlocksCAD Cutout Cube by BlocksCAD
...blockscad cutout cube by blockscad
thingiverse
blockscad cube with cutouts
thingiverse
free
BlocksCAD by MY3MAGS
...blockscad by my3mags
thingiverse
blockscad
thingiverse
free
BlocksCAD Snowflake Activity & Challenge by BlocksCAD
...ts will use blockscad to create a 3d design for a snowflake by writing a program to rotate a shape around an axis (using a loop).
thingiverse
free
BlocksCAD Earphone Holder by BlocksCAD
...e trial of our blockscad for education platform. from here you can create classes with unique join codes and manage student work.
thingiverse
free
BlocksCAD Robot Lesson by BlocksCAD
...e trial of our blockscad for education platform. from here you can create classes with unique join codes and manage student work.
thingiverse
free
Sun by BlocksCAD
...sun by blockscad
thingiverse
using blockscad software, you can use loops to create all sorts of cool shapes!
thingiverse
free
BlocksCAD Spiky Hair Lesson by BlocksCAD
...e trial of our blockscad for education platform. from here you can create classes with unique join codes and manage student work.
thingiverse
free
BlocksCAD by ReedCollins
...blockscad by reedcollins
thingiverse
thingiverse
free
BlockSCAD test by VanlindtMarc
...blockscad test by vanlindtmarc
thingiverse
made with blockscad ( https://blockscad.einsteinsworkshop.com/# )
Snowflake
3d_ocean
$9
Snowflake
...lake”. created using standard tools & render of the program cinema4d. can be used in printing, web-congratulation, animation.
turbosquid
free
Snowflake
...flake
turbosquid
free 3d model snowflake for download as max on turbosquid: 3d models for games, architecture, videos. (1477293)
turbosquid
$20
Snowflakes
...bosquid
royalty free 3d model snowflakes for download as max on turbosquid: 3d models for games, architecture, videos. (1484124)
turbosquid
$5
SNOWFLAKES
...squid
royalty free 3d model snowflakes for download as blend on turbosquid: 3d models for games, architecture, videos. (1231765)
turbosquid
$7
Snowflake
...
royalty free 3d model snowflake for download as 3dm and stl on turbosquid: 3d models for games, architecture, videos. (1418508)
turbosquid
$3
SNOWFLAKES
...oyalty free 3d model snowflakes for download as obj and blend on turbosquid: 3d models for games, architecture, videos. (1231789)
turbosquid
$3
snowflake
...royalty free 3d model snowflake for download as obj and blend on turbosquid: 3d models for games, architecture, videos. (1231808)
turbosquid
$1
Snowflake
...
royalty free 3d model snowflake for download as obj and fbx on turbosquid: 3d models for games, architecture, videos. (1357686)
3d_export
free
snowflake
...snowflake
3dexport
winter, snow
turbosquid
$10
Snowflake
...lty free 3d model snowflake for download as max, obj, and fbx on turbosquid: 3d models for games, architecture, videos. (1335166)
Cellular
turbosquid
$15
Cellular
...urbosquid
royalty free 3d model cellular for download as max on turbosquid: 3d models for games, architecture, videos. (1171711)
3d_export
$16
Cellular 3D Model
...cellular 3d model
3dexport
cellular
cellular 3d model nizaro 24599 3dexport
3d_export
$20
Cellular 3D Model
...del
3dexport
generic mobile phone cellular cell telephone cellphone communication wap sms
cellular 3d model tartino 3167 3dexport
turbosquid
$25
Cellular organism
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$10
Case for cellular
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$9
Vasa Cellular
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$5
Cellular Navcity
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$50
LG Saber Cellular
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$7
Qtek 8310 cellular smartphone
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
3d_export
$15
Styracosaurus Cellular Wireframe 3D Model
...life wire
styracosaurus cellular wireframe 3d model download .c4d .max .obj .fbx .ma .lwo .3ds .3dm .stl formbyte 109399 3dexport
Generator
3d_export
$17
Generator
...generator
3dexport
generator
archibase_planet
free
Generator
...base planet
generator electric generator
generator electric n300715 - 3d model (*.gsm+*.3ds+*.max) for interior 3d visualization.
design_connected
$20
Generation
...generation
designconnected
knoll generation computer generated 3d model. designed by formway design.
3d_export
$8
generator
...generator
3dexport
generator - obj, 3ds, fbx.
3d_export
$7
generator
...generator
3dexport
generator extures 4k resolution, basecolor -normal -metallic -ao-roughness-height tris:3084
turbosquid
free
generator
...rator
turbosquid
free 3d model generator for download as max on turbosquid: 3d models for games, architecture, videos. (1492909)
3ddd
$1
general
...general
3ddd
генерал
turbosquid
$99
generator
...urbosquid
royalty free 3d model generator for download as ma on turbosquid: 3d models for games, architecture, videos. (1514125)
turbosquid
$20
Generator
...rbosquid
royalty free 3d model generator for download as max on turbosquid: 3d models for games, architecture, videos. (1244841)
turbosquid
$2
Generator
...rbosquid
royalty free 3d model generator for download as fbx on turbosquid: 3d models for games, architecture, videos. (1245541)