Procedural weathered fractal terrain in OpenSCAD
Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.
Zapisane na tym urządzeniu.
Wind-worn random terrain generated procedurally
- Ocena
- 0 / 5
- Polubienia
- 31
- Pobrania
- 292
- Wydruki
- 0
- Wyświetlenia
- 3076
- Oceny
- 0
Aktualizacja u źródła:
Informacje o modelu
- Źródło
- Printables
- Kategoria
- Other Art & Designs
- Licencja
- Creative Commons — Attribution
I wanted to create a procedurally-generated terrain map on a globe, using OpenSCAD. I'll get around to the globe eventually. First I had to get the procedural terrain generation to work, and then the weathering/erosion algorithm. This is the result.
Because this terrain is generated procedurally from a random number seed, you can get an infinite variety of landscapes.
To read about how I developed this, see my blog article Simulating erosion, in which I describe both the terrain generation algorithm and the weathering simulation. The end of the article includes a JavaScript applet you can play with.
You can use the OpenSCAD customizer to set parameters, but I suggest instead you read the comments at the top of the file to understand how the parameters work.
The script lets you generate a single-color model, terrain only, or separate land and sea parts for multi-color printing. The weathering algorithm is slow; I recommend no more than 2 passes. Also, the greatest practical value for the number of subdivisions used on the fractal surface is 7. You can use 8 but the resulting file is large and has way more resolution than you need for printing. Read the comments at the beginning of the script!
Print Settings
Printer: Prusa i3 MK3 MMU 2
Supports: No
Resolution: 0.20 mm layers
Infill: 15% gyroid
Filament: Generic PLA (silk bronze), Prusament PLA (deep blue)
Notes:
The model pictured is printed with 3 perimeters. Printed with two colors on a Prusa i3 MK3S+MMU2S, it took about 7 hours. Printed in a single color it would take a fraction of that time.
How I Designed This
I couldn't have created this using OpenSCAD's functional programming language until I could develop a proof-of-concept using an imperative language. So I used JavaScript, a free 3D graphics library, and HTML + CSS to develop the algorithms described in my blog article. I then converted the procedures into recursive OpenSCAD functions. The resulting OpenSCAD script turned out to be fairly short.
Category: Math Art