Friday, February 10, 2017

Miscellaneous thoughts

In addition to working, walking, and eating, today I watched The Lego Batman Movie, an amusing new animated feature. It was a lot of fun and will likely produce a review in the next couple days. I'm continuing the cleanup of the Plate Tectonics code, and have finished updating the parameters export to cover all the new parameters.  A few fresh example worlds are shown below.  In a way, I've gotten sick of hearing about politics, but like a car wreck I find it hard to look away. I'm putting the Colonize program I described yesterday onto the back burner, but when I return to it I shall ponder renaming the method for natural population growth from the present four letter word to simply Procreate. 😉

Tonight was a big improvement over last night, and was quite neat with the moon.  Tomorrow is looking to be quite lovely weather-wise. Hopefully, I shall spend a chunk of the day outside enjoying it.

World created using seed 14 and one tectonic cycle.

World created using seed 14 and two tectonic cycles. Parameters otherwise were the same as above.
Note the rugged coasts and high mountains, typical of multiple tectonic cycles.
World created using seed 7 and one tectonic cycle.
Note only a few high mountains, and smoother coasts, typical of one cycle only.



Colonize

One last example before I go to bed.  I didn't realize how late it had gotten until just now.  The Colonize program is designed as a crude and by-no-means science-based model for seaborne colonization from... elsewhere.  It's had all of four hours work.  It is very much a work in progress, though it'll probably go on the back burner for a while.  I want to get back to writing The Forbidden Valley, and there's still the last cleanup activities for Plate Tectonics simulation.  But it sure is colorful, and shows some potential, so I thought I'd share the image.


Colonization in progress of a world generated by Plate Tectonics.
Colors represent owning country, and white represents uncolonized lands.

World generated by Plate Tectonics simulation

Thursday, February 9, 2017

Plate Tectonics - 13

I decided to take a brief break from wrapping up the Plat Tectonics simulator work to actually play with it and see about using the generated elevation data in other programs.

Graphical output from Plate Tectonics simulator.
Single-precision floating-point data is actually used for interchange.

First off, I modified my C# port of Amit Patel's polygon map generator to support imported elevation data. There's still some incomplete features in this program, especially with my "Tolkien-esque" rendering mode. When using imported elevation data, sometimes the river networks have anomalies, caused by low spots - "dips" or "holes" - within continental interiors.  This could be addressed either within the Plate Tectonics simulator or within the map program.

Elevation data from Plate Tectonics simulator was the data source for
this image in a polygonal map generator.
Close-up of the northwestern continent, in Biome view.

Close-up of part of the map, in "Tolkien" view
I've also implemented an import mode for the planet generator I've mentioned in posts past. For terrestrial planets, it usually uses 3D Perlin noise to create the elevation map of the world.  With the import, it uses the imported elevation data instead of the noise.



Map created from importing the elevation data into Planets program

The map wrapped around a globe, with some fractal clouds partially shrouding the planet.


Wednesday, February 8, 2017

Plate Tectonics - 12

It is all over but the cleanup.  The algorithms are all working about as I'd like.  I understand the erosion algorithms a lot more now.  The original version of PlaTec from several years ago used a modified image smoothing algorithm for erosion.  The 2015 version incorporated, in sequence, a hydraulic erosion model (rain drop method), the adding of some random noise to the elevation, and then a super-simplified but effective approximation of thermal erosion.  Run it too frequently, and the continent would erode away to sea level, but often in the interior before along the coasts.

Example 1


Because of some of the abnormalities (the "caterpillars" and eroded mountains) and that tendency, I added a coastal erosion process that lessens the elevation of cells adjacent to water, and run the main erosion algorithm less frequently.  I also increased the threshold for the main erosion algorithm, reducing over-erosion of the continental land masses.

Example 2



About my only complaint is the high degree of variability in the "quality" of the results for a given set of parameters (other than the random number generator seed).  The majority of results are acceptable, but some oddities can show up, and you never know if you'll get them or not.  So this isn't greatly amenable to fully automated operation; a person should definitely review results for suitability.

Example 3


So what's left before release? Just the cleanup. I have a variety of debug outputs that need to removed. There are a handful of functions that should ideally be made members of classes if possible - in one case, I'm not sure its possible due to how FLTK callbacks work. I guess I'll find out. I drastically increased the number of simulation parameters that were exposed. However, the export code only currently writes out the few parameters that were originally exposed. So that will need to be updated. I suppose it could also use a quick document describing the simulation parameters and how to accomplish different basic goals with them can be accomplished. Then to GitHub with the lot of it.

Parameters - these should all be written to file when exporting image or elevation data








Tuesday, February 7, 2017

Adulting

I'd like to be posting on the Plate Tectonics simulator right now, but I couldn't wrap things up on that tonight.  Instead. I had to act like an adult.  Some problems popped up at work, one largely of my own making, others not, and I've been spending the evening fixing them.  That's kind of what one does when one has responsibilities.  It is the adult thing to do.

Adulting is term new to me, but the concept itself isn't.  When one makes commitments, and has responsibilities, the adult thing to do is to meet them head on.  It isn't always easy, and may not always be possible, but it is the ideal, and one I strive to live by.  So.... back to testing to see if this patch works so I can get have a colleague run a formal test in the morning, to be followed by a few emails that need responses, and sleep so I can make it to a morning meeting promptly.  I leave you with this picture of why the erosion algorithm needs to be revisited once more.

Too much erosion is not a good thing!

Weather

Weather.  It comes in many forms.  Like thunderstorms just before you go to write your evening post.  Hence there was no post last night, which was going to be about Plate Tectonics.  I can't even post a good screenshot now - the incomplete simulation run was terminated when I had to shut down the computer.  And now I must run to work.  So expect to see something this evening - weather permitting.

Monday, February 6, 2017

Television

I don't watch much television these days. However, I'd spent too much time in front of a computer, felt temporarily "read out", and had a home-cooked meal to eat, so I actually did watch some television earlier this week.

I spent about four hours watching SyFy Channel.  They were running Captain America: The First Avenger, which I'd not seen since I caught it in the theaters.  It was still enjoyable.  I also caught a couple episodes of The Expanse, which appears to be based upon a series of novels I may track down at some point.  I'm not sure quite what to think about it, but it was nice to see an actual space series.

Then I watched Superbowl LI last night.  It was an exciting game at times, and some of the commercials were OK.  Also, I had another home-cooked meal to go with it.  This time it was German: beef rouladen, spaetzle, and red cabbage.  Not a bad accompaniment to a football game.

Both nights, I saw commercials for upcoming television series or episodes.  I don't think I shall make it a habit to watch too much television.  There just isn't that much of interest.  But I did get reminded that there are a small number of shows on that I like, that I'd forgotten about. And it felt good to veg out for a little bit.

So don't expect this blog to disappear because I spend all my time in front of the television.  Do expect a few more posts in coming days as I wrap up the Plate Tectonics simulator.  Do expect another snippet of The Forbidden Valley once I've fixed a few things.  And have a great day!