Map of the World I Rendered in Blender

We'll start with a desktop-suitable version of the planet.

We’ll start with a desktop-suitable version of the planet.

So I decided to go back and make a larger version of the planet image I created previously for use as a desktop. Basically that involved just resizing an slightly recomposing the scene and rendering it. To add a bit of a half-assed atmospheric effect, I added an Outer Glow to the transparent planet layer. I think this still might have some value in combination with a good set of cloud and atmosphere spheres in Blender.

Next, I decided to create a flat map-style image suitable for gis tools and the like. The Cycles renderer is not terribly fast on my computer. The panoramic camera only makes the situation worse. So I made some modifications to the settings to try to reduce rendering time considerably. Hopefully without compromising the quality of the map image.

I have zipped up all(or most) of the blend files I used on this here

I set the resolution to 2048×1024, but any 2:1 aspect ratio will work(the X and Y values labelled as Aspect Ratio control the shape of the individual pixels; 1:1 square pixels are perfect). Output is an 8-bit RGB PNG with no compression. Samples were reduced to only 32 with no speckling I could see. It could probably be further reduced. I went with Direct Light for light paths. I’ve limited Light bounces to one for diffuse and glossy and zero for transmission, volume and transparency. Viewport is Static BVH for “faster render”, but I don’t think that will effect rendering outside of the viewport. Under Acceleration structure, Use Spatial Splits is checked for longer build time but faster renders. The build time at the start seems pretty short in any case, so it shouldn’t cause problems and in any case this should make larger resolutions a lot quicker.

I also made some changes to the node graph for shading.First, I disconnected the Bump node. It had no visible effect with the light coming from right in the center where the camera also resided. I also tried to take out the Glossy BSDF shader, but although the specular effects weren’t visible I found the water areas to be too dark.

The comparison with my previous PlanetCell map render is not perfect as the shader tree for PlanetCell was quite complex, and I was using a lot of OSL script nodes, which slow things down, but my previous PlanetCell renders took… HOOOUUURRRSSS. No. Literally. They took hours. Nearly an all day render. My render for this only took 31 minutes and 42.88 seconds.

As a further experiment, I plugged the Color Ramp into a Brightness and Contrast node and connected that and the original ramp into an RGB Mix node with the Greater Than and Multiply nodes used to drive the Mix Shader node plugged into the face node. Although I’d hoped that this would result in significantly faster renders, it took 32 minutes and 53.42 seconds to render. Basically a wash.

For a third experiment, I also reduced the Glossy light bounces to zero. That… also seemed to slow things down. It took 33 minutes 28.07 seconds to render. I don’t understand that at all, but whatever.

Finally, I simply lightened up the water colors in the Ramp itself and reduced the render light samples to eight. This time the render time was 7 minutes, 35.81 seconds! I also increased the tile size to 128×128. I wonder if there is some overhead in rendering and moving tiles? Let’s test that.

No other changes. I’m just increasing the tile size to 1024×1024. That separates the rendered image into two sections, so that my dual-core CPU can handle them in parallel. Rendering time 6 minutes and 3.62 seconds. Apparently, there is some benefit to the larger tiles, but apparently additional samples are expensive. Still pretty quick and decent render.



Now, we try a larger render. 4096×2048 with a tile size of 2048×2048. That took 21 minutes 49.22 seconds.

4096x2048 8 samples

4096×2048 8 samples

I tried an 8192×4096 render with a tile size still of 2048×2048 with 5 and 8 samples. The 5 sample version took 58 minutes 10.82 seconds to render, but it was much too grainy. The 8 sample rendering took 1 hour 33 minutes and 27.97 seconds, but still seemed a bit grainy.

Finally, I rendered an 8192×4096 render at 10 samples. This took me 2 hours 1.16 seconds to render. The improvement to graininess was minimal. I think I’d stick with 8 samples in the future, because the time cost was just too high for the negligible improvement.

8192x4096 10 samples

8192×4096 10 samples

Next week, I’m going to Disneyland on my daughter’s Make*A*Wish trip, so I won’t be able to maintain the pace of postings I have lately. After that, I’ll get right back on the horse.
The Astrographer

Posted in Mapping, Planetary Stuff, World Building | Tagged , , , , , , , | Leave a comment

Cultural Oddities List

Dressing Habits

  • Same clothes for all sexes.
  • Characteristic clothes for some group or groups.
  • Characteristic hats for some group or groups.
  • Characteristic masks for some group or groups.
  • Characteristic gloves for some group or groups.
  • Characteristic jewelry or accessories for some group or groups.
  • Characteristic cosmetics for some group or groups.
  • Some group has characteristic hair…
    • Shaved heads
    • Dyed hair
    • Unusual hairdos
    • Oddly coiffed eyebrows
  • Some group has characteristic facial or bodily alterations…
    • Finger or toenails worn long or removed.
    • Tattooing on face, body or both.
    • Hidden tattooing.
    • Scarification on face, body or both.
    • Hidden scarification.

Eating Habits

  • Characteristic foods or beverages for some group or groups.
  • Some group or groups have characteristic food preparation rites.
  • Some group or groups are segregated during meals.
  • Some group or groups are vegetarian.
  • Some group or groups eat only meat.
  • Some group or groups have taboos on color, shape, source or kind of food.Some group or groups eat only in special locations.
  • Some group or groups eat only communally.
  • Some group or groups eat only in private.
  • Some group or groups eat only at home.
  • Some group or groups have characteristic times to eat.
  • Some group or groups have rituals before eating.
  • Some group or groups have rituals after eating.
  • One group or groups prepares food for another or others.
  • One group or groups eats others’ leftovers.
  • One group or groups must wait until others finish eating before they can eat.
  • One group or groups practices cannibalism(perhaps as a funeral rite, perhaps otherwise).

Living Quarters

  • Some group or groups are expected to live privately.
  • Some group or groups live in segregated locations.
  • Some group or groups live at place of work.
  • Some group or groups have special living conditions.
  • Some group or groups live in extravagant quarters.
  • Some group or groups live in minimal quarters.
  • Some groups’ quarters are taboo to others.
  • Some groups’ quarters must be visited by others.
  • Some group or groups live with extended families.
  • Some group or groups live with groom’s family.
  • Some group or groups live with bride’s family.
  • Some group or groups live in communal housing.
  • Some group or groups are expected to move around.

Family Practices

  • Child named by member of some group or groups.
  • Child named for living relative.
  • Child named for dead relative.
  • Child named for hero.
  • Child named for member of some group or groups.
  • Child named for object.
  • Child named for date or season of birth.
  • Child named for object.
  • Child renamed at adulthood.
  • Child renamed at marriage.
  • Marriages are arranged, performed or both by member of some group.
  • Marriage only within group.
  • Marriage only outside of groups.
  • Members of some groups can only intermarry with certain other groups.
  • Remarriage prohibited.
  • Remarriage required.
  • Groom’s family pays dowry.
  • Bride’s family pays dowry.
  • Dowry paid by member of some group or groups.
  • Very short marriages the rule.Very long marriages the rule.
  • Non-marriage the rule.Very short marriages prohibited.
  • Very long marriages prohibited.
  • Non-marriage prohibited.
  • Divorce and remarriage required.
  • Surviving spouse must marry member of dead spouse’s family(widow, widower or both).
  • Surviving spouse must commit suicide after death of spouse(widow, widower or both).
  • Onerous prerequisites to marriage.
  • Marriage only at certain times.
  • Marriage must be permitted or blessed by member of some group.
  • Polyandry practiced.
  • Polygyny practiced.
  • Polygamy practiced.
  • Communal marriages practiced.
  • Open marriages common, typical or expected.
  • Children raised by some group or groups.
  • Bodies of the dead are preserved and frequently visited and consulted on matters of importance.
  • The dead are preserved as clothing or food items for relatives or friends.

Miscellaneous Customs

  • Unusual sleep time or duration for some group or groups.
  • Unusual location or orientation for sleep.
  • Some group or groups use a distinctive language.
  • Some group or groups have sacred symbols.
  • Some group or groups are assigned characteristic duties.
  • Members of some group or groups are expected to maintain public anonymity.
  • Drinking or drugs are prohibited.
  • Drinking or drugs are required.
  • Bodily abuse prohibited.
  • Bodily abuse required.
  • Special privileges for some group or groups.
  • Special privileges prohibited to some group or groups.
  • Characteristic greetings, mannerisms or leavetakings for some group or groups.
  • Secret societies for some group or groups.
  • Taboo against closed meetings for some group or groups.
  • Literacy prohibited for some group or groups.
  • Literacy required for some group or groups.
  • Psionics, magic, whatever are required or prohibited for some group or groups.
  • Cloning is allowed, required or prohibited for some group or groups.
  • Robots allowed, required or prohibited for some group or groups.
  • Weapons allowed, required or prohibited for some group or groups.
  • High technology(arbitrarily determined) allowed, required or prohibited for some group or groups.
  • Offworld(international, extratribal or whatever) contact allowed, required or prohibited for some group or groups.
  • Gift-giving customs for some group or groups.
  • Free food, clothing required or prohibited for some group or groups.
  • Free education required or prohibited for some group or groups.
  • Education(beyond some arbitrary limit) required or prohibited for some group or groups.
  • Certain punishments required or prohibited for some group or groups.
  • Certain training required for some group or groups.
  • Some group or groups have specific responsibilities.
  • Some group or groups can only be visited at certain times.
  • Bargaining and haggling are permitted, required or prohibited for certain group or groups.
  • Traveling long distances is permitted, required, prohibited for certain group or groups or requires permission from a member of certain group or groups.
  • Certain group or groups have their own holidays.
  • Certain group or groups are denied any holidays.
  • Characteristic leisure or recreational activities for some group or groups.
  • Leisure time and recreational activities are very regimented for some group or groups.
  • Characteristic rite of maturity for some group or groups.
  • Some group or groups have characteristic attitudes towards some other group or groups.
  • Unusual attitude towards life and death.
  • Some group or groups hold an unusual significance for flora, fauna, smell, sound, color, air, water, light, fire, darkness, clothing, computers, technology, robots, weapons, art, work, etc.
  • Daytime rest period or nap permitted, required or prohibited for some group or groups.
  • Superstitious belief in ghosts, spirits or gremlins.
  • Superstitious belief in bad omens.
  • Superstitious belief in curses, the evil eye or rituals to avoid such.
  • Superstitious belief in arithromancy, astrology, fortune tellers, etc.
  • Places of business have shrines or symbols to protect them from misfortune(statues of mercantile deities, burning of incense, wind chimes, etc.
  • Homes have shrines or symbols of protection or veneration for ancestors or deities.
Posted in World Building | Leave a comment

Christmas Repost: Cultural Oddities

Last night, my wife was telling me about a person of her close acquaintance who can get teared up looking at needlepoint. This came up after I mentioned a sociologist I heard on NPR. This fellow had mentioned that in some culture(I’ve lost any specifics), it was considered normal for people to see spirits. Yeah, this is my conversational style, fly off on tangents from orbit to orbit. My wife has learned to roll with this :).

Aaaanywaay, these folks see spirits. That’s normal. Not seeing spirits in this culture would be a little bit like not seeing cars in my culture. Similarly dangerous. These spirits are important. They provide guidance, warnings of danger, all manner of information that these people in their dense tropical forest environment(I remember that much) found useful and important.

Going on a tangent, I could ask, “What are they really seeing?” As a believer in a secular, logical, objective reality, I’m not about to suggest that they are really seeing the magical spirits of their dead ancestors or whatever. What I am willing to say is that they are aware of subtle hints in their environment, right at the edge of the sensory envelope, of the presence of dangerous or useful things. Much as I can see animals in clouds or faces in the random tufting of a carpet, they have been trained to see guiding spirits in those hints. This works for me, especially in the science fiction realm.  Now if you are writing a fantasy story with magic and ghosts, why not have actual personified spirits? No es problema!

A couple of tangents from one conversation and we see two things. The first is that all those tangents and non sequiturs can be a creative tool if written down. The second is that those little personality quirks can make for interesting cultural traits. Yeah, you could probably take other things from that conversation, too. The relation between creativity and a faulty memory, for instance, or the skills required to maintain a working relationship with a nutty husband…

A useful tool I found in detailing different societies was the Customs lists on pages 75-77 of the MegaTraveller World Builders Handbook(Amazon). These are lists of no more than 36 quirks in Dressing Habits, Eating Habits, Living Quarters, Family Practices and a couple of lists of Miscellaneous Customs such as sleeping location, gift-giving and specific holidays for different Practicing Groups such as Political Figures, poor people or everybody. Now the lists may not be hugely imaginative(What do you expect? This is my kind of book: mostly physical stuff… Even if they did mess up the illustration of eccentric orbits…). Let’s face it, you can easily extend the family practices list without going far beyond reading some Heinlein. On the other hand these are good for dislodging the little gray cells. As things come up, I add to the existing lists. All manner of fun things come up: astrologies, numerologies, odd dietary and bathroom restrictions(Fun with Leviticus!), geomancy(invent your own Feng Shui, in a fantasy story it could actually work), and funerary customs(go down to the temple to ask grandpa’s pickled head for marital advice? Sure!).  I think I have inklings of a story to go with the title, “Corpse in the Corner…”

Realistically, you don’t have to go that far to make something really different. Look at all the conflict between Christian, Jewish and Islamic cultures. The differences are pretty trivial(at least by the standards of your average socially tone-deaf science fiction writer… like moi), but the conflicts sure ain’t. The burkha? Well, gender-liberalism is a pretty new thing in the West by historical standards, and Taliban is probably a pretty close equivalent to Inbred Hillbilly. Saudi Arabia is what happens when the Westborough Baptist Church makes the laws. Looking at those kind of equivalents can be pretty fertile ground for weird cultural concepts. The parallax view. It’s pretty easy to get seriously dystopic with that.

Here are some reference works I’ve found useful, particularly with developing religious customs and mythologies. (Amazon links)

Also, Bible, Book of Mormon, anything by C.S. Lewis, Bhagavad Gita, and Xenopsychology by Robert A. Freitas(Analog magazine, April 1984 issue. Good luck!). Actually Robert Freitas is a good author to look up, generally.

I’d also add anything by Ursula LeGuin, Jack Vance or Donald Kingsbury(back to those funerary customs: Dad jerky to fortify the heart when facing adversity). Ha! Some of these are much more prolific than others…

Thus, to quote Buffy, endeth the lesson.

Thank you,
The Astrographer

Posted in World Building | Leave a comment

Playing With Blender Cycles

This is just a little something to fill in over our trip. A successful render with Blender Cycles. Musgrave Hetero Terrain noise(cycles nodes), bumpmapped diffuse shader above sealevel and a fairly simple glossy shader below sealevel. All with a hypsometric color ramp gradient. Pretty simple, but I think it’s a very pretty Christmas ornament.



Thank you,
The Astrographer

Posted in Planetary Stuff, Science Fiction | Tagged , , , , , , , | Leave a comment

One More Bit About Noise

While I intend to continue posting new versions of planetGenesis as I make(hopefully useful)changes, this will be my last noise post for awhile. Did I just hear applause?  To start with, here is planetgenesis_301a.jar. I’ve added scaling to the Modified Multifractal node. The MMF seems to be properly scaled for all modes so long as the Sensitivity parameter is set to 0.0. So basically a modified monofractal. Still, it’s progress. It’s a fairly minor improvement, though, so I went with version 3.0.1a rather than 3.0.2. There are also some other minor improvements.

I’m really happy with the F4-F3 Planet effect. It makes a nice blocky fractal, with much less pronounced linear features. After generating the “planet” noise in planetGenesis, I loaded the resulting 16-bit PNG into Wilbur.

In Wilbur, after rescaling the elevations for land and sea, I used the exponent filter to give the planet some continental shelves and more interesting mountain ranges. I also added a bit of Incise Flow. Maybe more than a bit. That thing is so slow, that you kind of want to see something when you’re done!

The F4-F3 heteroterrain fractal rescaled and shelved into our planet in Wilbur.

The F4-F3 heteroterrain fractal rescaled and shelved into our planet in Wilbur.

I then reworked the gradients to change the coloring. Under Texture>Shader Setup…, I selected the Altitude tab. To change the Land and Sea gradients to my preferred coloration I clicked on the Color List… button in the appropriate section and then clicked on the Load button in the Edit Color List window and selected the landColors and seaColors files in the F4-F3 Planet folder respectively. The result seen in Wilbur is as shown here…

The map with my own slightly modified color ramp.

The map with my own slightly modified color ramp.

Still in Lighting Settings, I selected the General tab and changed the Display Type from Lighted to Height Code. This gives the hypsometric coloring without the hillshade effect. I will use this in Photoshop to tone down the hillshade in the undersea areas.

A flat version of the hypsometric map without hillshading.

A flat version of the hypsometric map without hillshading.

My third, and for our purposes, last, image will be a seamask. I create this by selecting Texture>Gray Maps>Sea Mask… and selecting an appropriate sea level.

The sea mask to hide the flattening layer over land.

The sea mask to hide the flattening layer over land.

We save that mask image as a PNG Texture and adjourn to Photoshop.

In Photoshop, I open the hillshaded image first. Next, I load the flat image, Select All, Copy, go back to the hillshaded image and Paste. That will produce a new layer, hiding the hillshaded background. Next, we open the sea mask layer, Select All and Copy. Back in the original, formerly hillshaded image, we select the top layer and Add A Layer Mask. Now we go into the Layer Mask Channel and paste the sea mask. Selecting  RGB in channels, we find that the hillshading is visible on land, but hidden under the oceans. Next we reduce the Opacity of the flat sea layer just enough to let some of the undersea hillshading show through to give the seas a little “PIZZazz!”

The result, as I did it, can be seen in the planet1.tif file here(F4-F3 Planet). A web-ready version can be seen below.

The finished product!

The finished product!

As always, manually placed and masked elevation effects, preferably guided by some sort of tectonic model will always be more effective, but I was impressed by the results of the fractalized Voronoi noise and thought I’d share it. Also, most of the styling tips given here will work quite well with handmade elevations. I think next, I will try masking in fractalized F4-F3 noise guided by the results of a good Tectonics.js session. Maybe use that for higher mountains and a less angular Perlin(Simplex) for lower hills and highlands. Hmm… Gotta think how I’d do that.

Thank you,
The Astrographer

Aside | Posted on by | Leave a comment

Repost: The Collapse of a Civilization

or: Big Things Die Hard

So right now I have two draft posts, both of which refuse to come together. One requires me to just sit down and pound away at my notes in a way I just haven’t had time for lately. The other one proved to be enormously more complicated than I’d originally thought. This is typical of my efforts at human geography.

This post is a riff on the second of those. Neither as deep as what I’m working on in the draft, nor as well focussed.

While a lot of what I’ve been thinking about with respect to cultures lately has been based on the concept of a society as a sort of character, with motivations, internal and external conflicts, and the decisions that character makes to resolve those conflicts and support those motivations, this post is more about the mechanics and structures of social events. The social event I am focussing on is the collapse of that society. As a geographer by education and an astrographer by, um, avocation(?), I am interested in how a collapse proceeds and moves through time and space.

I believe, especially in a world with slow communications, the fall of a society is not like a tower of cards, but more like a string of dominoes. Even that simile is inadequate, as in this case the dominoes can pick themselves back up to totter and fall again, knocking down their neighbors, who are also trying to stand themselves up. Also, this would be in two or three dimensions, so the effect might be considered to be more like overdamped waves.

There are two broad models for slow communication: one is trying to maintain a continental or oceanic empire where the fastest means of communication is a letter carried on sailing ship or horseback. Even if we had Concorde jets flitting through the air, the absence of radio or telegraphic communications would render the regions of the world somewhat more isolated. Also, without radio those fast planes would be really dangerous.

Once again, I think I need an example.

A Tale of Four Worlds


The Solar Union is a fictional interstellar republic of the future.

While we have a magic FTL drive in this milieu, it has it’s limitations.

The first limitation, which I based on the stutterwarp drive in the 2300AD rpg, is that it can only travel 9 light years between the stars before it has to stop in a fairly strong gravity well for about 32 hours to discharge some effect that it accumulates while travelling at impossibly high speeds. Since FTL is, by definition, kind of magic to start with, I have no real physical explanation for this effect, except to say that by some <doubletalk> phenomenon, the ship loses its contact with real space and time which stresses the drive inordinately and makes its position increasingly indeterminate. In effect, if you go past the 9 light year limit without discharging near a star, your drive could blow up or you could find yourself a billion light years away from where you should be. This has the effect of requiring fairly circuitous routes through space and lots of waystations in otherwise useless locations. Also, sometimes a good pilot can go just a little further. That inspires the occasional hotshot to go a little too far, and bang Lost Human Colonies of the Cretaceous Age 😉 . Maybe.

The second limitation is that while it is impossibly fast, it ain’t that fast relative to the distances it has to travel. The fastest ships can make nine light years in a little less than two days, but these are expensive. Your average tramp freighter might take about a week to travel between two stars of roughly average separation. While the, “Direction,” a shadowy secret society of the alien pNu, is rumored to possess ansibles, for the less fnord among us the fastest means of interstellar communication is by starship.

The Solar Union is a successor to the United Nations. In fact, ships of the Solar Union Fleet still use the UNS-prefix, which stands for United Nations Starship. Although the Solar Union has more power than the old UN and is better able to wield that power, it remains a somewhat loose confederation of the independent nations of Earth. Most of those nations retain their own military forces and some of them still have nuclear weapons. This situation can be somewhat dicey. Many extra-solar colonies were planted by various nations of Earth and others were planted as colonies of the Solar Union as a whole. A few planets have gained their independence and are represented in the SU Assembly as independent nations. Some of these planets had multiple colonies from different nations and aren’t really all that unified in their own right.

Almost all of the colonies, whether national or international in character were not organized as independent, self-sufficient economies. Most of them are fairly dependent on interstellar trade for survival. Particularly waystations in connecting systems without habitable planets. The nations of Earth wanted her children to remain dependent and tied to the apron strings of the mother world. Political power is also very much concentrated on Earth. To some degree this is a natural and reasonable result of the fact that somewhere around half the human race still lives on Earth. Less justly perhaps, most of these colonies are only represented in the Solar Union Assembly by their home nations on Earth, where they don’t necessarily enjoy any real influence regardless of their relative population. Colonies planted by the SU have no real representation at all, though they do have more power over local issues devolved to democratic local institutions. Only a very few worlds are independent nations in their own right, and these are whole planets, often with very diverse political structures being treated as single nations.  The outsystems begin to feel, to some degree rightly, very much exploited. Many of the people of Earth, for their part, feel increasingly like they are being taxed to appease the increasingly ungrateful outsystems, funding for outsystem development programs are accordingly dwindled.

So this is the situation. Difficulties of communication(never good for the maintenance of a polity). The core feels the ingratitude and resentment of outsystem colonies, which they are losing interest in supporting. The outsystem colonies feel exploitation and derision from Earth. A pretty good basis for conflict.

Setting the Stage

By the beginning of the 25th century AD tensions between Earth and many of her colonies were high. In 2468 a long starport workers strike on Beta Comae Berenecis III had spread to several other colonies. When shortages began to be felt on Earth, the response was swift and brutal. The Solar Fleet Marines were sent out to protect thousands of workers that were sent out from Earth to replace the striking workers. Although hundreds of former workers were killed and thousands injured in the ensuing riots and military response on seven worlds, the most lasting harm was in the change that this represented in policy and the creation of a new social division on many worlds.

The policy for dealing with any resistance to Solar Union was now to fire any workers involved and replace them with new workers shipped from Earth. A policy supported, if necessary by military force. Military force usually proved necessary. These new workers represented a new social class. Elevated by fiat from Earth, this new social class, culturally tied to Earth and dissociated from local culture, became a dominant minority in many cases. These, “scabs,” as the Terran replacement workers were often called, typically lived in relatively luxurious gated communities, guarded by armed sentries.

Resentment spread out in ripples from the now unemployed natives as they went out in search of the less skilled and prosperous work now available to them. This period was sometimes referred to as a, “Second Terran Diaspora,” as people with less opportunity for prosperity on Earth went out to become dominant on already well-developed colonies. Continuing colonization of new worlds from Earth had already slowed and more of the dissatisfied people from previous colonies were filling the ships taking colonists out to these few new worlds. Because of this, new colonies were increasingly restive and troublesome. By 2420, Earth ceased planting new colonies altogether. Not until 2448 is another new world, Voltaire, colonized by a small coalition of outworlds. Almost none of the colonists would come from Earth and these would find themselves so discriminated against as to discourage further such emigration. Besides, Terrans had plenty of opportunities taking up the, “Earth Man’s Burden,” in the elder colonies.

Predictably, the Solar Union found itself very busy rooting out conspiracies among outworlders plotting its overthrow, not always successfully as it turned out. Back on Earth, national governments dealing with wave after wave of shortages of outworld goods and paying for the response to restive colonists, were beginning to find the Solar Union increasingly pointless and expensive. Worse, the Solar Union often tied their hands in dealing with problems on their own colonies. Finding Solar Union forces to be ineffective and overly gentle in dealing with a general revolt on their colony on Novaya Rodina, the government of Russia decides to send its own counter-insurgency forces to handle the situation. The SU Assembly votes to order the Russians to stand down their forces after the military effort descends into a series of massive slaughters and occasional orbital bombardment of rebellious population centers. It is a measure of the brutality of the Russian response that they could shock a Solar Union already used to a degree of brutality in such responses. The Solar Union now found itself the target of resistance both from a now genuinely independent Novaya Rodina, and a nuclear-armed Russian Empire, which chose to secede from the Union in 2463.

For the next generation, the situation stabilized into an ugly little, “Cold Revolt,” of terrorism, brushfire wars and backroom plotting. Economically, human space descended into a seemingly permanent cycle of recession, depression, inflation and sudden drastic deflation, occasionally broken by short-lived bubbles that only seemed to enrich a few wealthy speculators.

One group of plotters called themselves the System-States Alliance, a group of outworlders spread across Solar Union space with the goal of overthrowing the Solar Union and putting up a loose coalition of largely independent, freely trading system states. In spite of the wide spread of their operation, they were successful in remaining beneath the radar of Solar Union security forces, and they managed to infiltrate to high levels in the Solar Fleet.

In March of 2484, the System-States Alliance stages its long-planned revolt. The single most successful operation in their initial assault was the attack on the large and vital Fleet yards orbiting Chi Draconis. A handful of ships which were taken by System-States mutineers and a large number of outworld mutineers on the Fleet facilities managed to capture nearly ten percent  of the Solar Fleet in that one operation. In all nearly a third of the Solar Union ships are taken by System-State and sympathetic revolts and mutinies  throughout human space. Some units from national fleets engage SU forces in support of rebellion. The loss of Chi Draconis has cut off the Solar Union altogether from the entire Draconis Arm. Much of the rest of human space remained in disarray.

The Solar Union focusses first on building up the military base at Proxima Centauri to assure Earth’s safety and then sets its sights on regaining control of the rest of human space. Only after regaining control of the rest of human space within 40 light years of Sol, although pockets of resistance remain and terrorism remains rife, does the Solar Fleet set about retaking the Draconis Arm and breaking the back of the Draconian League, which is what the System-States Alliance became isolated on the Draconis Arm. The Battle of Sigma Draconis proved long and painful inspiring strong anti-war, isolationist and anti-SU movements back on Earth. These many movements varied widely from anarchistic to highly authoritarian, from capitalistic to communistic and from nationalistic to globalist and they varied in their particular resistance to the Union, the war and outsystem contact, but they were all in support of one or more of these ideas.

The Draconian League, for its part, was even less unified than Earth and would eventually fall into a mass of independent bickering states. The only unifying theme of the Draconian League that would endure was resistance to Earth and a fanatical hold on Chi Draconis. After Sigma Draconis fell to Union forces, Chi Draconis was attacked several times and actually fell twice. Every time League forces regained the system at the expense of great bloodshed.

With the Solar Union’s failure to regain control of the Draconian Arm and increasing inability to hold on to other worlds in human space, China, Brazil and the Pan-African Union secede from the Solar Union in 2490. Russia supports their new found independence, although it sees it as an opportunity to increase its own influence. Soon after, the Scandinavian Community, long troubled by the violence of Solar Union responses to outworlds intransigence, also secedes.

Fatigued, wounded and disunited the Solar Union agrees to a temporary armistice line between Sigma Draconis and Chi Draconis so that they can try to repair their internal affairs. By 2502, reduced to a shell of its former self, the Solar Union recognizes the independence of the Draconian League which frees the League to collapse into a permanent state of near-chaos.

In 2518 a short nuclear war between the Russo-Chinese Empire and the remnants of the Solar Union over the Kamchatka-Alaska Strip removes Earth from the interstellar community for awhile and balkanizes the planet. The loss of Earth removes the Solar Union as an effective unifying source of any sort and with what’s left of the Draconian League incapable of taking advantage essentially leads to the balkanization of the rest of human space.

Left to their own devices most worlds aren’t capable of building starships. Only a few worlds are capable of diversifying their economies to the point of independently maintaining their technological civilization. The very worlds thus, that are most dependent on interstellar trade are the least capable of maintaining it. Over the next fifty years, as existing starships gradually fall into disrepair, many worlds with overly specialized economies fall to a primitive state. Some even fall to pre-industrial savagery. Worlds that do maintain star travel find that their ships are far too valuable for long excursions into the Wilds where maintenance yards are unavailable and what few ships remain are bent on piracy. The few small interstellar polities remain small and insular.

This is the beginning of a Long Night, not altogether unpunctuated by the occasional point of light.

So now that we have background, we can look at a few specific places: Durandal, Vanguard, Nishapur and Sadwillow. Since this got really long I will post these examples separately.

Posted in History, Science Fiction, World Building | Tagged , , , , , , | Leave a comment

Domain Distortion


Still working with noise generation on planetGenesis. I found a mistake in my previous effort. I had been assuming that the domain distortion Combiners(Disturb, Warp and Turbulence) worked by sampling the left side noise at coordinates shifted by the noise in the right hand side. I had this backwards as shown here. This was important, as my attempts to control the strength of the domain distortion were doomed…

All of the files referenced here are contained in this zip file.

I have made a few changes to the program itself. Firstly, I’ve changed some of the slider step sizes, as they were inappropriately large. A minor modification, and I am sure there are still some peculiar slider step sizes that need some work. Also, in order to make noises more controllable, especially when they are controlling other functions, I made an attempt to internally scale the basic Perlin and Multifractal noises to a range of (-1, 1). I decided to leave the Modified Multifractal unscaled for now, as determining exactly what the per-octave amplitude is is exceedingly complicated. I seem to have been completely successful with the Perlin node, and somewhat successful with the Multifractal node(the the Ridged and Billowy Perlin and Simplex noise types don’t scale properly. The basic Perlin and Simplex noises and the Sine Wave “noise” all seem to scale well, though, both in Perlin and Multifractal). The Fractallize functions are not yet scaled…

The scaling is reliable(within the limitations specified), no values will be outside of the range (-1,1), but it is not guaranteed, or even terribly likely, to produce values that fill the range between (-1,1). I frequently find output ranges on the order of [-0.3…,0.9…] or [-0.9…,0.3…] or even smaller ranges.

Additive nodes(Add, Subtract, Warp and Turbulence Combiners for example) work well with signed inputs. Multiplicative nodes(Multiply, Divide, Power, Disturb, etc.) often work better with unsigned inputs, (0,1). Except for Musgrave Ridged Fractallize, the Fractallize nodes seem to digest signed and unsigned inputs equally well.

The SignedToUnsigned.pG graph demonstrates a set of nodes that convert a (-1,1) input to a (0,1) output. UnsignedToSigned.pG takes the unsigned output from an SU-like subtree and convert it back to (-1,1). Basically SU(x) = 0.5 * (x+1), and US(x) = 2*x – 1. These are useful tools in predictable graph creation.



The noLatitude.pG graph is an attempt to use the new capabilities of planetGenesis301 and what I have learned to make effective clouds more easily. The cluster of nodes is a domain distortion noise constrained to a (0,1) range. The two Constant Value nodes on the left control the domain distortion. The top node is the strength and the lower node is an offset that may or may not be necessary when using a Disturb node.

There’s also, off disconnected to the right, another experimental Voronoi graph. Never mind that.

The WithLatitude.pG graph uses a Position Y gradient node to control the strength of



the swirling effect with latitude. One thing I’ve observed is that even with predictable inputs it’s very hard to control the frequency of a domain distorted noise. Although this was written with the Bryce program in mind, I think the “phase” section describes the interaction between distorting noise scale, noise scale and strength of distortion pretty well…

I’ll need some time to work out how these interactions work with Warp, Disturb and Turbulence Combiners. In the meantime, thank you for reading.

The Astrographer

Posted in Mapping, World Building | Tagged , , , , , , | Leave a comment

Repost: Motivations Governing Cultural History

I’m going to gradually go through the best posts of the last six years.

Part of building a world is populating it. Where are the cities? Who are the leaders? What do they speak? What kind of music is playing down in the Market Quarter? Where can I get a good Vilani beer that tastes like old gym socks?

Part of the process of answering these questions is to give your world a history. The cities will have a different character if they were founded by the Sardau tribe across the mountains than if the were founded by the Tlatanga tribe down the river or the Ga Harama riding out of the Great Sand.

History is, itself, a story. The various cultures of a world are as much characters in that story as the heroes and villains in their ancient legends. This post will try to describe one way of building cultures as characters. We need to look at the old cliché of the method actor asking, “What’s my motivation?” I try to differentiate cultures by giving them fairly simple founding motivations in terms of the problems that a culture was created to address. This can explain the conflicts as that society grows and as its set of challenges change. It can also drive the life cycle of a society as those mechanisms intended to address an existing set of challenges becomes increasingly maladapted to new and different challenges. As a hopefully illuminating example of how this works I will use my own very unofficial idea for the Vilani Empire in the science fiction role playing game Traveller.

The Vilani were descended from humans transported to their world by ancient starfaring aliens called, imaginatively, Ancients, presumably as slaves, lab subjects or possibly pets. The planet Vland had life, but it was not biochemically compatible with Earth life. The biochemistry was close enough that they could find nourishment from properly treated local biomass, but it was different enough that local micro-critters couldn’t cope. I’m not sure just how reasonable theses assumptions are, but there are three points of interest that stick out for me.

  • These people have really weak immune systems that haven’t had to cope with significant attacks for many generations. Kind of like the native Americans with smallpox(and syphilis, and…) only more so. These guys haven’t met a bug that didn’t come out of their own gut in ages.
  • They’re also really dependent on a small elite group with specialized knowledge to process their food. Without those shugilii, they starve to death or probably die of poisoning.
  • These Ancients probably planted humans on other worlds(they did) and they may even have transplanted other organisms from Earth on suitable planets. Food plants would be a likely choice, especially since I’m going to assume that the Ancients were fairly compatible biochemically with Earth life(they can eat our food and drink our booze, mmm Amaretto).

So about five thousand years ago, when these guys got off their home planet and started looking around they found a world with Earth life on it, maybe even another clade of humans. What happens? Suddenly back home on Vland people are eating imported peaches and onions and potatoes and corn… and beer that wasn’t produced by fermenting old jock-straps in human waste materials. Yay! The dominant shugilii caste starts to lose its hold on society. Suddenly the alternative to kow-towing to your local chef isn’t starvation, it’s food that likely tastes better than the nutrient mulch that comes out of a shugilii’s cauldron.

This could have been a revolutionary time of innovation and liberalization, two traits not well known in Vilani of later times. Now, the shugilii, while their power is slipping, still have a lot of resources, this becomes important later.

Remember those weak immune systems? Well all of this close contact with the delicious products of an earthlike ecology just about inevitably leads to contact with unfamiliar microbiota. In the canon history, a series of deadly epidemics that ravaged the Vilani Empire after contact and war with Earth was called the Plagues of Duskir. I’m going to assume that this was named after a much earlier Plague of Duskir which precipitated the creation of the Vilani Empire.

By the time these ancient plagues were brought under control, the shugilii were firmly back in control. They blamed the misfortune which befell the Vilani on their libertine actions and their shameful innovation. The psychic trauma of these plagues must have been great as the Vilani remained hidebound and conservative millennia later. I won’t comment on how realistic that timescale might be. The shugilii, although hobbled by a limited understanding of germ-theory, also move to break contact between the Vilani people and all of those bugs on planets with earthlike ecologies, also incidentally(heh-heh) strengthening their hold on the Vilani food supply and thus their power.

So the Vilani Empire is founded with a medical motivation in mind(and shugilii power-politics, of course). The first priority is to quarantine and restrict access to worlds with earthlike biochemistries. The Vilani thus passed by many of the best, most human friendly garden worlds in favor of unpleasant, marginally habitable dumps for fear of disease. Humans found on other worlds would be even more worrisome. I suspect the empire would keep those other humans restrained to their own worlds or tightly defined ghettos in space. By force if necessary. Exploration would have been slow and tentative, but methodical in the early days. No one wants to find more humans out there, carrying awful diseases, but too strong to be forcibly quarantined. Later on, slow and tentative would start to dominate and exploration would become less methodical in a tottering, decadent Empire.

Their dealings with non-human aliens might be much less strained. Once the aliens have passed through a quarantine period and shown not to carry organisms harmful to the Vilani, they might even be admitted freely into Vilani society, depending on their cultural tendencies, of course. Officious, by-the-book Bwaps are everywhere, more creative, incautious or wild-minded aliens might be nearly as restricted as all of those minor humans.

Fear of a reprise of the earlier great plagues prevents the Vilani from the exposure to disease organisms that might make their immune systems more powerful. On the one hand, we know that they suffered under the onslaught of Terran diseases during and after the canonical Interstellar Wars. On the other hand, we also know that a few hundreds of years later, Vilani are common throughout the Third Imperium, but don’t seem to have any particular tendency to fall dead with blood coming out of their eyes on meeting humans from Earth. When the quarantine structures are broken down due to the dual perils of the decay of Imperial authority and hostile action by the enemy Terran Confederation, disease ravages the Empire. Even with reasonable contact with other human races, the variety of disease organisms from the homeworld of the human race would have had unpleasant repercussions but probably less devastating than what they suffered.

Shugilii efforts to restrict innovation as pretty much of a horribly-punished sin, results in an Empire poorly prepared to cope in the face of an active and technologically-advancing enemy.

Going back to that fear of disease, the Vilani response to contact with other humans would lead inevitably to the conflict. The Vilani contacting Earth would be happier talking with Ridley Scott’s Alien over a conference table than representatives from Earth, and it would show. The people of Earth would be less than happy at being cordoned off like lepers in some little corner of space. Other humans weren’t any happier, but contact with Earth was a perfect storm: the Empire was in a state of decay; Earth had been given a lot of time to grow, unfettered by Imperial authority; the humans of post-industrial Earth were just a bit more innovative and advanced than previous humans had been at the time of contact. In combination, this time, the humans could resist quarantine and did.

So the end of the Vilani Empire is predicated by its beginning as much as any classical tragedy.

This same pattern of traumatic problem, particular set of solutions, and failure of that solution set to be adaptable to later problems leading to dissolution, could be applied to the creation of other societies as well. For instance, the Ramshackle Empire in Traveller was predicated on maintaining the gains from the Interstellar Wars and propping up the rotting cadaver of the Vilani Empire, and the Third Imperium was simply created to maintain interstellar trade and stave off a new Long Night.

Basically, try to isolate the motivating trauma, determine the enduring mechanisms created to handle the trauma, then come up with a new set of problems and remove some of the old ones to see how the mechanisms twist, deform and break to adapt and the ways in which those mechanisms fail to adapt.

This isn’t a philosophy of real life, though it does inform my own political viewpoint(Aaah! Politics! Run!), but it is simply intended as one tool in a box of tools for the creation of interesting cultures.

Thank you for your attention,

The Astrographer

Posted in History, World Building | Tagged , | Leave a comment

Clouds and more Voronoi

Fig.1 Balls textured with the six textures shown here. (top row l to r): genesis1, genesis, genesis0. {bottom row l to r): genesis 2, genesis 3a, genesis 3b.

Fig.1 Balls textured with the six textures shown here. (top row l to r): genesis1, genesis, genesis0.
{bottom row l to r): genesis 2, genesis 3a, genesis 3b. With the exception of the upper-left cannonball, all of these would benefit from separate surface(bumpmapped), cloud and atmosphere globes.

So I’ve experimented a bit more with planetGenesis. This time, my main focus has been on another bugaboo of mine after craters: cloud cover. I am very much liking the swirly weather-like effects I have attained so far. Not to say any of this is perfect. As with the cratering experiments, all of this can definitely be considered work-in-progress. Any constructive criticism or recommendations are altogether very welcome! I also experimented around a bit with more Voronoi-based textures.

Ordinary fBm or heterogeneous fractals, usually based on a Perlin noise, are usually sufficient for clouds as seen from the ground or reasonably low altitudes. From orbit or beyond, they tend to look like… fBm or some other fractal noise! I’ve messed with Turbulence, Warp, Disturb and other domain-deforming nodes, but found them difficult to control.

An image of the graph used to generate the noises described today. There are three separate trees and one minor(but significant) modification to one of the trees.

Fig.2 An image of the graph used to generate most of the noises described today(clouds.pG). There are three separate trees and one minor(but significant) modification to one of the trees.

So, I’ve packed up all the files you’ll need to follow along in this zip file. Because planetGenesis lacks a proper system for adding arbitrary labels to graphs(I’m working on giving No Operation nodes user-assigned labels, but so far I’m doing something wrong…). In the absence of that(and probably marginally clearer than my No Op labels), I’m putting up an image of the graph with labels added in Photoshop.

The red line, running from the output of the Musgrave HeteroTerrain on the left to the input of the Terrain node is the source of “genesis clouds”. You’ll note that it is also possible to connect to the output of the Multiply node, but I didn’t think that was an improvement. The green line from the output of the Musgrave Multifractallize node to the Terrain node is associated with “genesis0 clouds” and “genesis 2 clouds”. The difference is that the genesis 2 clouds pass through the Compliment(“1-x”) node before passing into the Disturb node.

The actually connected tree,”genesis 1″(between the middle Musgrave HeteroTerrain

Fig.3 Genesis 1: An appealing, if time-expensive, fractal noise.

Fig.3 Genesis 1: An appealing, if time-expensive, fractal noise. Probably good for a rock texture or coarse, grainy metal.

node and the Terrain node), is really the least important. It is simply an experiment with combining different neighborhoods of the same Voronoi together in a combined additive-multiplicative manner(F9 * F8) + (F5 * F4) with what planetGenesis calls a QuasiEuclidean distance metric. As you can see in the genesis 1 image, It makes an appealing fractal noise, but, although it doesn’t seem all that slow at 1024×512 resolution, with all those Voronoi calculations I doubt it will scale well to higher resolutions. But YMMV.

I found the genesis clouds tree to be the best compromise between usefulness and speed.

Genesis clouds. A low-frequency noise modified by a higher-frequency noise Turbulence and passed into Musgrave HeteroTerrain.

Fig. 4 Genesis clouds. A low-frequency noise modified by a higher-frequency noise Turbulence and passed into Musgrave HeteroTerrain.

As you can see, I’ve experimented with some variations on this. Multiplying the original noise in with the HeteroTerrain node really didn’t make a meaningful difference. And taking directly off of the Turbulence node through the No Op node has proven very unsatisfactory. I think I’m running into a bug, but I can’t run it down… This one makes a very nice swirly atmosphere. Though it could benefit from something to make the swirls more realistically latitude-dependent, it is beginning to loog plausible and it is quite fast. It’s all Perlin Simplex Noise all the way down and not a terribly complicated tree, so I expect it will scale pretty nicely to higher resolutions.

I added in the resulting noise to Photoshop as a layer as-is. I then used a copy of the grayscale noise as a mask for… an okay effect. After massaging the mask a little with a

Fig.5 Genesis 0 clouds. A somewhat slow combination of Perlin noise Disturbed by a Worley Cell Basis fed through an abs function.

Fig.5 Genesis 0 clouds. A somewhat slow combination of Perlin noise Disturbed by a Worley Cell Basis fed through an abs function.

Threshold adjustment and applying a Gaussian Blur filter, I think it got pretty attractive. I added a simple LunarCell planet surface to get an idea how it would look “in situ”.

The next texture,”genesis 0 clouds,” is very slow, even at a mere 1024×512 resolution, and, while attractive, probably not worth so many octaves applied to a Voronoi, so I’m not sure how terribly useful it is. For completeness, I created a surface map as with the previous noise as seen above. I actually like this more, with massaging, than the genesis clouds, but it is so very slooow.

Fig.6 Genesis 2 clouds. Modified by the Complement node, this makes nice puffy clouds. If this weren't so GODAWFUL SLOW, this would be good in combination with G1.

Fig.6 Genesis 2 clouds. Modified by the Complement node, this makes nice puffy clouds. If these weren’t so GODAWFUL SLOW, this would be good in combination with G0.

Next, I simply add in a Complement node between that last Adjust node and the lhs input to the Disturb node.

Looking at it, I think it might pay to try this with a cheaper Perlin basis and fewer preliminary octaves.

I yanked out the wiring for the other noises and replaced the

Fig.n Genesis 3a:

Fig.7 Genesis 3a: Fast version of G0.

Worley Cell Basis in the genesis 0 and genesis 2 clouds. I replaced that with a simple 1 octave clamped Perlin Simplex. I also modify the settings of the last Adjustments

node such that the output has a range of about (0…1).

I’m going to start with the first variant(no Complement). Call it “genesis 3a”. It runs pretty darn quick. Let’s see how it looks. Not terrible…

Fig. 8 Genesis 3b: A faster version of the G2 puffy cloud generator.

Fig. 8 Genesis 3b: A faster version of the G2 puffy cloud generator.

Now to click that Complement in there… Call it”genesis 3b”. Honestly, I still prefer the Voronoi versions, but these are a good stand in for when there’s a time pinch. Or when, you know, you want a reasonably high resolution texture in less time than it takes to sleep off a bad night at the bar…

That’s all for today. Thank you for watching, folks!
The Astrographer

Posted in Mapping, Planetary Stuff, World Building | Tagged , , , , , , | Leave a comment

The Sharif Won’t Like It

Rock the Casbah!

Rock the Casbah!

I decided to mess about a bit more with Voronoi textures. Mostly, I’ve been focusing on

Buildings on top of buildings…

Buildings on top of buildings…

naturalistic forms, but I did take a look at mechanical or architectural forms with Manhattan and Chebyshev(or Chessboard, as they’re labeled in planetGenesis) distance metrics. Putting a Tileable Worley through a very slightly ramped Range node and a Fractalize function resulted in an interestingly artificial yet chaotic texture that reminded me of a map I once saw of the Casbah district in, I believe, Algiers. Chaotic and mazelike with weird, narrow, dark, wandering alleyways that don’t lead to where you’re going, but(at least in some kind of fantasy game or story) provide lots of opportunities to find adventure or a knife in a dark alley. Or both!

Actually, my first thought upon seeing that was of a wall covered in bas relief alien genesis_wallhieroglyphics, but when I actually rendered it, it looked very much like some dry medieval overgrown city suitable for A Thousand an One Nights. I loaded the image up in Photoshop, converted to 8-bit RGB and placed a Gradient Map Adjustment Layer with a gradient in browns that came with the software.

The image proved very complicated for a Blender modifier. To make it work and not look awful, I had to max out a Subdivision modifier to 6 levels, then add a couple more in a separate modifier. It’s really, really bloody fortunate that I was using a Blender Internal render, because I’m pretty

Not terribly different from the first picture. Just a bit more rounded…

Not terribly different from the first picture. Just a bit less well rounded…

sure I would have died, skeletonized and gotten buried in the dust of ages before completing a Cycles render on my computer. I’m pretty sure Cycles doesn’t like my graphics card and does everything on the CPU! The first time I rendered it, I used a vertical plane to simulate a wall a’la Blood Sands of Lh’O’won, but as soon as I saw it, I knew it was architecture and immediately re-rendered it as a flat horizontal plane. To simplify things, and also so that I didn’t end up with a round plane, I used a Simple subdivision surface rather than a nicely smoothed Catmull-Clark. I wasn’t paying close attention, so I added the last couple of subdivisions with the default Catmull-Clark smoothing. The effect, as shown in the picture at the top of the page, was much smoother and cleaner than the purely Simple subdivision, and the plane remained square as long as the Simple subd was at the top of the modifier stack. After a bit of experimentation, varying the layers of Simple vs. Catmull-Clark subdivisions, I felt I had a pretty good look.

I hope you enjoyed this little aside,
The Astrographer

Aside | Posted on by | Tagged , , , , , , , | Leave a comment