Just a few largely-unrelated comments/announcements:
I've figured out how to address the seam issue with the Globe program. I was a bit under the weather and too busy with day job to finish it off, but expect an update within the next few days.
I recently finished reading The Russian Origins of the First World War by Sean McMeekin. While I'm not sure I fully embrace every argument he makes, I think his general thesis that Russia bears at least as much blame for the outbreak of WWI as Germany is well supported. I may post an in depth review next week.
At lunch I reread Ken Perlin's classic 1985 paper "An Image Synthesizer" and chapter 5 of F K Musgrave's dissertation, so I have a few more things I'm likely to try for planet generation, including non-Earth-like worlds. I may have something along those lines available online in September. Incidentally, the "Pixel Stream Editor" Perlin described 31 years ago seems to bear a greats deal of functional resemblance to pixel/fragment shaders in modern 3D graphics architectures.
Now that I've finished the book I mentioned and refreshed my memory on the computer graphic topic, I resumed reading Mr. Kipling's Army: All the Queen's Men by Byron Farwell. It covers the rather bizarre institution what was the British Army in the years between the end of the Napoleanic Wars and the start of WWI. It reminds me of the (briefer) treatment of the Royal Navy found in Chapter 22: From Sail To Steam in Robert Massie's Dreadnought. Maybe I'll write a review, maybe not.
And there will be more of Pandora's Gate soon.
And with that, I shall bid the world adieu for the night and seek a restful night's sleep.
Wednesday, August 31, 2016
Book Review: Shadow of Victory
On Monday afternoon, Baen Books released the eARC (electronic Advanced Reader Copy) of the Shadow of Victory, the latest installment in David Weber's Honor Harrington series. Without getting into details that might serve as spoilers, I'll provide a very brief review.
First, let me start by saying that I enjoyed the book. Most of the individual scenes were enjoyable, and there were few glaring typos or errors that distracted from the writing. There were excellent action sequences, and there were scenes of old favorites we'd not spent time much time with in a while. It was a lot of fun.
Alas, I have two complaints. The first is that much of the book focused on various revolutionary/insurgent groups introduced in the previous book, Shadow of Freedom, rather than on Our Heroes. The second is that by the end of the novel, the Honorverse has chronologically advanced perhaps a couple days at most from where things were left at the ends of Shadow of Freedom and Cauldron of Ghosts.
Would I recommend this book? Absolutely. Do I regret having spent $15 on the eARC? No. Would I recommend you buy an eARC just so you can find out early what happens next in the Honorverse? Not really.
First, let me start by saying that I enjoyed the book. Most of the individual scenes were enjoyable, and there were few glaring typos or errors that distracted from the writing. There were excellent action sequences, and there were scenes of old favorites we'd not spent time much time with in a while. It was a lot of fun.
Alas, I have two complaints. The first is that much of the book focused on various revolutionary/insurgent groups introduced in the previous book, Shadow of Freedom, rather than on Our Heroes. The second is that by the end of the novel, the Honorverse has chronologically advanced perhaps a couple days at most from where things were left at the ends of Shadow of Freedom and Cauldron of Ghosts.
Would I recommend this book? Absolutely. Do I regret having spent $15 on the eARC? No. Would I recommend you buy an eARC just so you can find out early what happens next in the Honorverse? Not really.
Tuesday, August 30, 2016
Pandora's Gate - 4
Pandora’s Gate
Copyright ©
2016 by The Other Sean
This is part four of my ongoing experiment in epistolary fiction.
Dear Uncle Viggo,
Thank you for all
the letters. John has been reading them to me. I love hearing your
stories.
Yours truly,
Elizabeth
My dear niece,
You’re welcome.
It is great to hear from you. You’re writing has improved much.
How is school going? Please write more.
Your uncle,
Viggo
My dear nephew,
I hope this note
finds you well. I have almost completed my tale of why I call the
gate Pandora’s Gate. To explain that I have to explain some
details that might be a bit rough – though it also explains why my
dear sister never spoke much to you of Baltica. You’re not a young
boy anymore, so you should be able to handle it, but please do not
share the details with your sister. She’s far too young.
I told you about the
animals and vegetation and the plague and colonial
squabbles.skirmishes on land and sea. I did not tell you about the
vegetation, though some of it was brutal enough. I have not written,
though you may have heard, of some of the skirmishes and minor wars
that have been fought over colonial claims her in Baltica. Those
were all bad enough, but what happened in the 1892, eleven years
after the gate appeared, was in many ways far worse.
I was eighteen then,
newly hired onto the railroad, and your mother was a girl of
thirteen. Mother had taken her on a trip to a seaside village where
mother’s cousin had settled. Though the pseudo-crocs deter
bathers, the strand was a popular place to stroll. That’s what
they were doing when the lizard men came. When their longships
approached the strand, our kin and the others fled toward the
village. The lizard men hit the village only a minute or two later.
The lizards killed
several of the villagers before our kin could get to relative safety
inside our cousin’s cottage. As mother described it, there was
screaming, and shouting, and chaos all about. They made it to
shelter, but others weren’t so lucky. She said things were quite
scary until the villagers figured out what was going on, got their
guns out, and started shooting the lizards. It didn’t help that
half the men were out in the fields. Eventually, they killed enough
of the lizards that they fled back to their longships and went back
to the sea that had brought them.
My dear sister
wouldn’t speak for days, and she was withdrawn for weeks even once
she did. She had terrible nightmares. In the end, your grandparents
moved back to Earth with your mother, and she improved.
I stayed here. The
attack your mother witnessed was among the first of their attacks.
There had been no warning before those first attacks, but the news
spread quickly. More attacks followed, but there was less panic.
Vigilance became our
watchword on the railroad. When the lizards came ashore and raided,
sometimes they’d attack the trains. Our trains in New Jutland had
always carried a few guns to deal with the unruly wildlife, and we
found ourselves using them to fight off the lizard men. Were it not
for our guns I would be dead today. Several coastal and river
villages that were unprepared were entirely wiped out.
It was years later
before the main lizard settlements, and the gate that brought them to
Baltica, were found. Thousands died in their bloody raids, and for
years the Lizard Wars rages across Baltica and through the Lizard
Gate. But ultimately Baltica was secure again.
So now you know the
horrors that were unleashed by the gate, that none would have
encountered but for the gate. But the tale of Pandora’s Box dealt
not just with the horrors let loose from the box. There was also the
hope that was left behind.
And that brings me
to why the gate has brought hope. There hasn’t been a major war
between human powers since the Baltic Gate opened. Settlement has
been steady ever since the lizards were fought back. Any man seeking
land to call his own can find it on Baltica, though many have chosen
Pacifica or Columbia instead, I know. There’s a boundless vista of
possibilities open before humanity.
That is why the
Baltic Gate is Pandora’s Gate to me. Because it brought hope along
with horror.
There’s more tales
to tell, if I’ve not bored by favorite nephew and niece yet. I
hope you are both well, and look forward to hearing from you.
Your uncle,
Viggo
PS Please encourage
Elizabeth to write more.
Monday, August 29, 2016
A simple digital globe - 2
I completed the basics of the simple digital globe I mentioned in a previous blog post. Source code is available on GitHub. You can select an image file and it will be wrapped around a sphere. You can then treat the sphere like a globe. Rotate it via left and right arrow keys, tilt it up or down with the up and down arrow keys, and zoom in and out with page up/page down or plus and minus. Home restores it to default. You can print or export, sans background.
Alas, that is about all it can do. The purpose is more to demonstrate how to do the basics, and to serve as the basis for future development. There are a few features that should be added and one anomaly that should be addressed before that. The anomaly, as you can see below, is with the texture mapping of the final "slice" of the mesh.
That definitely represents a bug, and needs to get fixed. The distortion below, though, is a combination of the intrinsic limitations of the distortions imposed by the representing an approximately spherical* planet on a flat surface (or image file) and the tendency of map makers to omit the extreme polar regions from many maps as a result.
So what are the missing features? Ideally the UV mapping process should support some additional projections, so if dealing with a Mercator project map it uses the correct math. As it is now it simply interprets latitude linearly across the vertical aspect of the map. For another, the lighting is always pointed in one direction, so even if you spin the globe the same area remains brightly lit and the remainder slightly dim. Whether the background should be included when exporting and printing is currently not optional; it always prints/exports without the background. The background should also be able to be selected, rather than fixed. Lastly, there's no online help displaying the key information. Those are the features that are missing for the basic globe application.
Then there are the other things to build on top of this. Cloud simulation, possibly animated, using Perlin noise and multiple textures. A variety of the planetary terrain generation techniques described by Ken Musgrave. Maybe some of the things I've experimented with in the past. Possibly something along the lines of the plate tectonics-based techniques. Maybe a modified version of Amit Patel's island generation technique. Only time will tell.
* The Earth is actually a slightly irregular, slightly oblate ellipsoid.
Basic globe |
Alas, that is about all it can do. The purpose is more to demonstrate how to do the basics, and to serve as the basis for future development. There are a few features that should be added and one anomaly that should be addressed before that. The anomaly, as you can see below, is with the texture mapping of the final "slice" of the mesh.
Bug in texture mapping on the final "slice" of the globe. |
That definitely represents a bug, and needs to get fixed. The distortion below, though, is a combination of the intrinsic limitations of the distortions imposed by the representing an approximately spherical* planet on a flat surface (or image file) and the tendency of map makers to omit the extreme polar regions from many maps as a result.
Polar distortion |
So what are the missing features? Ideally the UV mapping process should support some additional projections, so if dealing with a Mercator project map it uses the correct math. As it is now it simply interprets latitude linearly across the vertical aspect of the map. For another, the lighting is always pointed in one direction, so even if you spin the globe the same area remains brightly lit and the remainder slightly dim. Whether the background should be included when exporting and printing is currently not optional; it always prints/exports without the background. The background should also be able to be selected, rather than fixed. Lastly, there's no online help displaying the key information. Those are the features that are missing for the basic globe application.
Then there are the other things to build on top of this. Cloud simulation, possibly animated, using Perlin noise and multiple textures. A variety of the planetary terrain generation techniques described by Ken Musgrave. Maybe some of the things I've experimented with in the past. Possibly something along the lines of the plate tectonics-based techniques. Maybe a modified version of Amit Patel's island generation technique. Only time will tell.
* The Earth is actually a slightly irregular, slightly oblate ellipsoid.
Sunday, August 28, 2016
Pandora's Gate - 3
Pandora’s Gate
Copyright ©
2016 by The Other Sean
This is part 3 in my ongoing experiment in epistolary fiction.
My dear nephew,
I’m glad you and
your sister are enjoying my letters. Things have settled back to
normal, and I have had time to rest, so I shall continue. You asked
about why I call the gate Pandora’s Gate, while every map you’ll
ever see calls it the Baltic Gate.
I told you about the
animals on land and sea. I did not tell you about the vegetation.
Some of the plants discovered here on Baltica can be eaten by humans.
Some even taste good. Some were edible, but had unforeseen
consequences. And some deadly plants look much like other plants
that are edible. I lost a friend who ate the poisonous berries, and
another who became very ill. The family next door lost a young
daughter when she rubbed up against a plant seldom encountered, but
that secretes a deadly poison. That was only discovered when the
plant nearly killed a doctor summoned to help her. I’ve met
several people for whom speech was rendered difficult or impossible
by the effects of eating a potato-like plant that had been considered
a delicious treat – until somebody finally realized it was
affecting speech.
So the plants and
animals were brutal enough. The hideous plague that ran through the
colonies for a few years was even worse. Over a thousand died here
in New Jutland, but it was worse elsewhere. It was brutal, it killed
three men for every woman, but eventually it disappeared almost as
abruptly as it had set upon us.
Then there were the
skirmishes and minor wars that have been fought over colonial claims
here. Denmark has mostly escaped them, but not entirely, and the
Germans and Russians have clashed several times. I hope we have seen
the last of that. The latest news I’ve heard is that tensions are
easing. I can but hope that continues. A war would be in nobody’s
interest.
And on that note I
shall take leave of this subject for now. I hope to tell you more in
my next letter. For now, best wishes to you and your sister. Stay
well.
Your uncle,
Viggo
Saturday, August 27, 2016
A simple digital globe
I mentioned in an earlier post that I'd come back to the topic of image mapping, and how to use a small bit of spherical trigonometry to place a map or photo onto a sphere. For that purpose, I've written a small C# / WPF application to demonstrate the concept and serve as a springboard for some additional investigation.
Alas, I've also clearly got a bug somewhere, as that is supposed to be a view of North and South America, but all the images are reversed horizontally. It is neat looking. I'm going to finish working out a few more kinks before I post the final code and have a more in depth treatment of the subject.
Background is a Hubble image from NASA, world map on the globe is from Wikipedia. |
For now, here's that bit of spherical trigonometry for converting three-dimensional Cartesian coordinates for points on the sphere to latitude and longitude. Because the sphere isn't really a sphere, but a mesh of triangles approximating a sphere. In order to map the image onto the triangle, texture (UV) coordinates indicating relative positions on the image are employed. To get the UV coordinates, the latitude and longitude are normalized by dividing by pi and 2 pi respectively. There's no guarantee this is quite right - my bug may in fact lie in this code - but clearly it mostly works, or the image you see above wouldn't look right.
private Point GetSphereUV(Point3D center, double radius, Point3D point)
{
Point3D effectivePoint = (Point3D)(point - center);
double lat = Math.Acos(effectivePoint.Y / radius); //theta
double lon = Math.Atan2(effectivePoint.Z, effectivePoint.X); //phi
if (lon < 0)
lon += twoPI;
double v = lat / Math.PI;
double u = lon / twoPI;
return new Point(u, v);
}
Same NASA Hubble background as before, this time with the output from one of my terrain generation experiments |
Friday, August 26, 2016
Where is Ruritania?
“Where is
Ruritania?”
That’s the
question that popped into my mind shortly after I decided to write a
story set there. If you’re not familiar with Ruritania, don’t be
too hard on yourself, because it is entirely fictional. English
author Anthony Hope created the country of Ruritania in a trilogy of
novels. The most well-known of the three books, the 1894 adventure
novel The Prisoner of Zenda,
has been the subject of many adaptations of the novel for stage and
screen, and numerous works have paid homage to it.
So
why do I care where Ruritania is? Because I decided to write a story
set there. I blame Sarah Hoyt. The comments following her August 6,2016 post brought up, among other things, Ruritania romances, giant
anime-style mecha, and the lack of enough works featuring Communists
vomiting blood in the gutters. Somehow that all came together in my
head, and now I’m (intermittently) working on The Warlord
of Zenda.
In
case you’re wondering what a “Ruritanian romance” is, Wikipedia
says that works in the genre are “set in a fictional country,
usually in Central or Eastern Europe” and “are typically
swashbuckling adventure novels, tales of high romance and intrigue,
centered on the ruling classes, almost always aristocracy and
royalty." The name of
the genre was
taken from that of Hope’s fictional country, Ruritania.
But
a question came to mind as I
started work: “Where is
Ruritania?” At first
glance, it doesn’t seem of great importance, and it wasn’t in
most traditional Ruritanian romances. But given the time period the
novel is set in (aftermath of the Great War), and that it may touch
some way upon grand politics, I thought it important to figure out a
plausible location. Hope left a few clues that help point the way to
plausible locations.
In
chapter two of the The Prisoner of Zenda,
Rudolf Rassendyll,
travels from England to Ruritania by way of Paris and Dresden. This
pretty much requires that Ruritania be in central or eastern Europe,
as if it were in western Europe or along the Mediterranean travel
from Paris by way of Dresden would be utterly nonsensical. Rudolf
spends the night in Dresden before catching a train to Ruritania
sometime the next day. It reaches Zenda,
“a small town fifty miles short of the capital, and ten from the
frontier” that evening.
Those could be air line
(straight) distances or along the railroad route; I have chosen to
assume the latter. We have no evidence as to when the train left
Dresden, its speed, or how
many stops it makes. If
it is a slow train, somewhere in Silesia, Bohemia, or Moravia would
be a good fit.
Another
fact also clearly emerges from
the quote above. Ruritania
may be small, but it isn’t tiny. It
has to be larger than European microstates of Monaco,
San Marino, Liechtenstein,
and Andorra. How do we know?
Because of the sixty miles (by whatever measure) from the frontier to
the capital at Strelsau. So
it has to be a bit larger, perhaps on the order of Luxembourg or
Montenegro.
The
borders of countries are
often based upon defensible borders and recognizable terrain
features, such as mountains and rivers. For smaller states, that has
often meant the states consists of a valley or series of valleys.
Several still-existing examples of this include Andorra, Switzerland,
Bhutan, Nepal, Georgia, and Azerbaijan. So I
considered that as I went searching.
Zenda fits nicely at the location of Witków, about ten rail miles inside the border. Fifty miles further along the rail lines sits Bystrzyca Klodzka, where I’ve placed Strelsau. Strelsau is described as being the great city of Ruritania, so it will have to be larger and grander than the town of Bystrzyca Klodzka.
The real city of Walbrzych will have to be downsized or a be new center of industrialization since the time of the Hope novels. Perhaps Ruritania’s nascent industrialization has helped give rise to the Communist insurgents who threaten?
And there we have it.
Thursday, August 25, 2016
Pandora’s Gate - 2
Pandora’s Gate
Copyright ©
2016 by The Other Sean
This is the second part in an
experiment in epistolary fiction. The first part is here. We’ll see how it goes.
My dear nephew,
I’m sorry my last
letter ended so abruptly. I shall explain why after I’ve finished
what had been interrupted.
New Jutland is
mostly flat, much like its namesake on Earth, but it is far larger
and possesses hills and mountains at one end. Many people have moved
from Earth to Baltica and the other worlds, but even with the
children born here families must work for years to make the land
home. Much of the land remains wild and uncultivated.
Nyhavn is largest
city in New Jutland, and the site of a great natural harbor. It was
founded when I was still a boy, but it was a difficult process. I
mentioned the horned lizards, the great sea serpents, and the
pseudo-crocs. All of them and more faced the first settlers and the
work crews attempting to construct the docks and port facilities.
Dozens of people died before the creatures in the area were thinned
out enough for work to proceed in relative safety.
When my father got
the job with the railroad here, and we moved from Earth to Baltica,
Nyhavn was safe enough, but no man dared travel outside Nyhavn
without rifle or shotgun. Our train crews always carry a few in case
a situation arises.
Conditions have
since improved, but in the outlying farms and some of the more
far-flung settlements, a weapon is still a necessity. The
settlements are somewhat spread out, and there is often wild land
between them. It can take a man on foot a day to travel from one
town to its neighbor.
That is where the
railroad comes in. For land trips of any great distance, passengers
and freight move by rail. The roads are too poor for long trips by
automobile, though I hear rumors the Governor General is planning to
pave the road from Nyhaven to Langtbro. As for airships, they are
far too expensive – and too limited in freight capacity – to
carry the bulk of what the railroads carry. For trips across the
sea, though, they do have the advantage of not falling prey to sea
serpents.
I mentioned earlier
that New Jutland has mountains. Beyond them lay the German colony of
New Prussia. Given the past experiences of Denmark and our family,
a tight watch on that frontier is warranted. My father and his
parents, your great-grandparents, were driven from Slesvig, and I do
not wish to see a recurrence.
For the moment,
though, our relations with our German neighbors across the mountains
are little cause for alarm. The tension between Russia and the
German Empire, however, has caused stress for some in our Army. Last
night they demanded the railroad ship additional supplies and troops
from the base here at the Nyhavn to the frontier in the mountains.
That’s why the boss called me in.
I had more to say
about the early days of New Jutland. However, the last few days have
been quite long, and I must rest. Give my love to Elizabeth. I hope
you are both doing well over there in America.
Your uncle,
Viggo
My dear nephew,
I hope this letter
finds you and Elizabeth well. Things remain hectic here.
We’ve been more running extra trains for the Army. Yesterday involved
moving a trainload of horses and soldiers. The cars we used for
the horses stank by the time we got them back to the yard at Nyhavn.
I am glad my job does not involve cleaning them. The evening
newspaper says the Germany-Russia situation is settling down –
perhaps this means the end to the extra trains. I shall write you
more later. Until then, stay well.
Your uncle,
Viggo
Dear Uncle Viggo,
Elizabeth and I are
both well, and thank you for your letters. We like hearing about
Baltica and New Jutland. Mom never told us very much about them,
even though I know she lived there with you and our grandparents for
a while. Please tell us more. You never finished explaining why you
call it Pandora’s Gate.
Yours truly,
John
Interesting Failures
Today's post is going to show the results of a few different approaches I've tried to use for generating terrain. None of these quite hit the mark, but I found them visually interesting. The first two examples are for entire planets.
In the first one, I started out by creating a supercontinent using a probablistic fill algorithm. Next I split it into continental chunks and shifted the chunks, then added mountains along the medial axis of the resulting chunks. Interesting, and you can see how they once fit together (like South America and Africa once did), but not convincing.
The second one was a variation on the theme, but more colorful. Here, I generated the supercontinent using an algorithm that combined a decay equation with Perlin noise. The supercontinent was split into chunks ago, which where then randomly placed in cluster zones. A dew smaller chunks were spread randomly, and island arcs were generated. The puzzle-piece effect of the first one is missing, but the coast lines here are more interesting. Still not a convincing map to me, though.
The third image results from a bug when porting Amit Patel's Polygonal Map Generator from Flash/ActionScript to Windows Forms/C#. (I should clean that up and get it up on GitHub someday.) That program is intended to generate not the terrain for a whole planet, but only for an island. Alas, a bug while testing the port resulted in the image below, which reminds me of some type of four-legged animal leaning down to eat or drink something.
That's it for today. I'll probably be posting more of Pandora's Gate tomorrow.
The second one was a variation on the theme, but more colorful. Here, I generated the supercontinent using an algorithm that combined a decay equation with Perlin noise. The supercontinent was split into chunks ago, which where then randomly placed in cluster zones. A dew smaller chunks were spread randomly, and island arcs were generated. The puzzle-piece effect of the first one is missing, but the coast lines here are more interesting. Still not a convincing map to me, though.
The third image results from a bug when porting Amit Patel's Polygonal Map Generator from Flash/ActionScript to Windows Forms/C#. (I should clean that up and get it up on GitHub someday.) That program is intended to generate not the terrain for a whole planet, but only for an island. Alas, a bug while testing the port resulted in the image below, which reminds me of some type of four-legged animal leaning down to eat or drink something.
That's it for today. I'll probably be posting more of Pandora's Gate tomorrow.
Wednesday, August 24, 2016
Pandora’s Gate - 1
Pandora’s Gate
Copyright ©
2016 by The Other Sean
This is an
experiment in epistolary fiction. We’ll see how it goes.
My dear nephew,
I call it Pandora’s
Gate. The rest of Earth may call it the Baltic Gate if they wish,
but they haven’t experienced it like I have, and it’s opening was
like the opening of Pandora’s box. But I’m getting ahead of
myself.
I was a child of
seven when it happened, back in 1881. Mother had walked me down to
the strand. The water was too cold for bathing but the strand was a
good place to walk. I remember when it appeared. One minute I was
seeing the sparkling blue waters of the Bay of Køge, glittering in
the early spring sunlight, with a blue sky filled with white puffy
clouds. The next a massive semicircle arced up from the water,
blotting out the sky. It was colorful. It was new and exciting. It
made mother worry. She dragged me back to the house, despite my
protests.
It was in the
newspaper the next day, of course. It was just a statement from the
government asking for calm and promising to investigate. By the time
the navy actually sent a ship some of the local fishermen from Køge
had sailed out to investigate on their own, and the town was abuzz
with the news before the newspapers. They’d discovered that the
semicircle was a gateway to another world, and there were islands
nearby. Denmark was first to claim one, but Sweden and Germany
followed within days. Russia and the other countries were too late
by the time they arrived; all the islands in the archipelago had been
claimed!
I don’t know what
negotiations or threats were made, but Russia managed to to acquire
one of the islands, and France another. That still left everybody
else out, at least as far as the archipelago went. But the
archipelago wasn’t one of the real prizes, as everybody learned
soon enough. There were other islands, and entire continents, on
which no man lived, and no nation yet held claim. There was more
than enough other creatures inhabiting those alien lands, and the
seas.
On land, the worst
were the horned lizards. They are swift, ferocious, and have teeth
that can tear a man to shreds. They’re nearly extinct here in New
Jutland, but you’ll still find one now and again. That first year
the gate opened, one of them devoured the Crown Prince of Germany when he visited the little German island. I imagine that’s not
something those of you in America have to worry about!
In the seas, the
question of what is the deadliest creature is another story, and open
to debate. Some say the giant sea serpents are the worst. They
usually avoid larger steamships, but they regard sailing ships and
smaller steamboats as prey. Worse, they can swim through the gate.
I was ten when I saw one in the Bay of Køge. It took a bit out of
one of the fishing boats, sinking it, but somehow the crew made it to
safety. Bad as they are, though, there are also the pseudo-crocs.
I’ve heard it said they’re not really crocodiles, but that
doesn’t matter, what does is that they’re just as deadly. They
can swim at sea for miles and miles, then crawl ashore and cause
chaos. That’s why the strand near Køge has been abandoned, and
why so much effort has gone into works to stop their spread.
Anyhow, despite the
deadly creatures that had been encountered, no country was content
with just their little island in the archipelago by the gate, not
when so much additional land had been discovered. That’s how the
New Jutland came about.
The King and the
Rigsdag may have organized the colonization, but if they hadn’t a
lot of Danes would have simply--
I’m sorry, I have
to stop here for now. I know you wanted to know more about our
family’s experiences with and beyond the gate, more than what your
mother told you, but I have received a phone call from my boss. They
need me to put in another shift. Give my love to your sister.
Your uncle,
Viggo
Monday, August 22, 2016
Book Review: Kosciuszko, We Are Here!
I recently finished reading Kosciuszko, We Are Here! American Pilots of the Kosciuszko Squadron in Defense of Poland, 1919-1921 by Janusz Cisek. It is the fascinating tale of over a dozen American pilots who volunteered to help the Polish in their war with the Bolshevik armies of Russia. Few of the pilots had personal or professional ties to Poland, which raises the question of why they volunteered.
As explained in the book, two main motivations existed. One was anti-Bolshevism, be it from second-hand exposure or general principle. The other motivation was to pay Poland back for the contributions of several Polish figures during the American War of Independence. Tadeusz Kosciuszko and Casimir Pulaski were Polish men were heroes to 18th century Americans and Poles; Pulaski gave his life leading a cavalry charge against the British at the Battle of Savannah. Merian Cooper, the American pilot who helped organize the squadron and served as its second command, was the direct descendant of one of the American soldiers who'd served with Pulaski at Savannah. (All three of the gentlemen mentioned above are interesting in their own right, and a quick perusal of their Wikipedia entries is impressive - particularly Kosciuszko and Cooper, whose life was... diverse.)
The author explains the general (bad) situation the newly-independent Polish republic found itself in during the aftermath of World War I. This helped me to understand why the Polish were so desperate for every trained soldier and airman they could find, and why they were so glad to add a (mostly) American squadron to their air force. It covers the operations of the 7th Kosciuszko Squadron during the Russo-Polish War (also known as the Polish-Soviet War), and attempts to place them in the context of the overall campaigns of the war. Alas, those without knowledge of that war may find themselves without adequate context. I sought out such context, and found that the final chapter in The Eastern Front, 1914-1920 by Michael S. Neiberg and David Jordan, helped add to the context.
As his name suggests, author Cisek is Polish, and his first language was clearly not English. Despite the occasional strange turn of phrase, the prose is decent and serves to convey the tale well enough. He delves into the Polish perspective quite well from Polish sources as well as reports from foreign diplomatic personnel (particularly the US Military Attache) in Poland. It features a decent number of photographs of the pilots and their aircraft, which help convey the primitive-but-improving state of aviation in the period.
The title is inspired by the famous quote "Lafayette, we are here." Those words were uttered by an American Army officer during WWI at the French grave of the Marquis de Lafayette. Like Lafayette, Kosciuszko was a European who served in the American War of Independence, and was a hero to his own countrymen as well.
As explained in the book, two main motivations existed. One was anti-Bolshevism, be it from second-hand exposure or general principle. The other motivation was to pay Poland back for the contributions of several Polish figures during the American War of Independence. Tadeusz Kosciuszko and Casimir Pulaski were Polish men were heroes to 18th century Americans and Poles; Pulaski gave his life leading a cavalry charge against the British at the Battle of Savannah. Merian Cooper, the American pilot who helped organize the squadron and served as its second command, was the direct descendant of one of the American soldiers who'd served with Pulaski at Savannah. (All three of the gentlemen mentioned above are interesting in their own right, and a quick perusal of their Wikipedia entries is impressive - particularly Kosciuszko and Cooper, whose life was... diverse.)
The author explains the general (bad) situation the newly-independent Polish republic found itself in during the aftermath of World War I. This helped me to understand why the Polish were so desperate for every trained soldier and airman they could find, and why they were so glad to add a (mostly) American squadron to their air force. It covers the operations of the 7th Kosciuszko Squadron during the Russo-Polish War (also known as the Polish-Soviet War), and attempts to place them in the context of the overall campaigns of the war. Alas, those without knowledge of that war may find themselves without adequate context. I sought out such context, and found that the final chapter in The Eastern Front, 1914-1920 by Michael S. Neiberg and David Jordan, helped add to the context.
As his name suggests, author Cisek is Polish, and his first language was clearly not English. Despite the occasional strange turn of phrase, the prose is decent and serves to convey the tale well enough. He delves into the Polish perspective quite well from Polish sources as well as reports from foreign diplomatic personnel (particularly the US Military Attache) in Poland. It features a decent number of photographs of the pilots and their aircraft, which help convey the primitive-but-improving state of aviation in the period.
The title is inspired by the famous quote "Lafayette, we are here." Those words were uttered by an American Army officer during WWI at the French grave of the Marquis de Lafayette. Like Lafayette, Kosciuszko was a European who served in the American War of Independence, and was a hero to his own countrymen as well.
NOTE: Amazon offers a much better price than I paid when I happened across this when perusing the book shelves at the gift shop of the National Museum of the United States Air Force in Dayton.
Sunday, August 21, 2016
Planets via Image Mapping
In my previous post on Classic Fractal Landscapes I posted some simple full-planet fractals I had created, but as plate carrée projections. I thought a brief mention of how to make them look like proper planets might be in order. Most rendering packages include a capability for texture mapping, in which an image is placed onto a model. Here's an example of what happens when I mapped the fractal images from that post onto spheres using POV-Ray:
Full code can be found in my GitHub repository. The image above is generated by MappedPlanets.pov, from which the following is excerpted:
I used my fractal images above, but the image could just as easily have been a map created with a digital art program (even Microsoft Paint), a scan, or a map. A couple examples are below, generated by the PaintMap.pov file.
Most 3D modeling programs contain a feature to perform similar mappings. For programmers seeking to display a planet (or globe) in an application, this can be done via some simple UV mapping between a sphere and the map by applying some spherical trigonometry. I'll cover that at some point in the future - perhaps I'll create a simple application to let you select an image file and manipulate the resulting globe. In any case, that's it for now.
The next post is likely to be on another topic, however.
Full code can be found in my GitHub repository. The image above is generated by MappedPlanets.pov, from which the following is excerpted:
#declare Fractal1=
object {
sphere {
<0,0.0,0>,
0.55
}
texture {
pigment {
image_map {
png "Fractal1.png" // image to map
map_type 1 // 1=spherical
interpolate 2 // 2=bilinear
} // image_map
}
finish {
ambient rgb <.35,.35,.35>
}
}
no_shadow
}
Most 3D modeling programs contain a feature to perform similar mappings. For programmers seeking to display a planet (or globe) in an application, this can be done via some simple UV mapping between a sphere and the map by applying some spherical trigonometry. I'll cover that at some point in the future - perhaps I'll create a simple application to let you select an image file and manipulate the resulting globe. In any case, that's it for now.
The next post is likely to be on another topic, however.
Tuesday, August 16, 2016
Classic Fractal Landscapes
Fractal landscapes have been with us since the 1980's. A couple examples of fractal landscape images, courtesy of Wikipedia, can be seen below.
Many of the fractal landscapes that drew attention through the early 1990's were the work of Benoit Mandelbrot and his various students and collaborators. Perhaps one of the most prolific of those who worked with Mandelbrot is F. Kenton Mugrave, who in addition to his academic work was creator or consultant on a large number of terrain generation and visual effects projects. His dissertation offers offers a theoretical discussion of techniques for generating terrestrial landscapes and a wide variety of planetscapes, along with various visual effects. Large numbers of code examples are also presented, but alas no images, as the color plates included with his dissertation have been lost.
A much shorter extract and variant from one of the courses Musgrave taught can be found online, and is much more to the point. He was also coauthor of a reasonably accessible (for programmers, computer scientists, etc.) book that has become a classic the on topic, Texturing & Modeling: A Procedural Approach.
The approaches Musgrave outlines for terrestrial scene generation work well on a relatively small scale, but there are downsides to using those approaches to model the entire surface of an Earth-like planet. You get something like these:
I've "flattened" these four down to display as only blue green, for land and water, rather than elevation detail, but even with elevation-based detailing added, they still don't look very realistic. See the two images below for an example of what I mean.
They lack the long, parallel, relatively-narrow systems of mountain like the North American Cordillera. Missing too are mountains like the Himalayas and Alps, wider bands of mountains resulting from different plate interactions.
There are ways to try to improve upon these methods, but the fractal methods simply have some inherent flaws. In future posts I'll address some of those improvements (e.g. statistics-based, example-based, etc.), and non-fractal approaches (e.g. crude plate tectonics simulations). For now, adieu.
Many of the fractal landscapes that drew attention through the early 1990's were the work of Benoit Mandelbrot and his various students and collaborators. Perhaps one of the most prolific of those who worked with Mandelbrot is F. Kenton Mugrave, who in addition to his academic work was creator or consultant on a large number of terrain generation and visual effects projects. His dissertation offers offers a theoretical discussion of techniques for generating terrestrial landscapes and a wide variety of planetscapes, along with various visual effects. Large numbers of code examples are also presented, but alas no images, as the color plates included with his dissertation have been lost.
A much shorter extract and variant from one of the courses Musgrave taught can be found online, and is much more to the point. He was also coauthor of a reasonably accessible (for programmers, computer scientists, etc.) book that has become a classic the on topic, Texturing & Modeling: A Procedural Approach.
The approaches Musgrave outlines for terrestrial scene generation work well on a relatively small scale, but there are downsides to using those approaches to model the entire surface of an Earth-like planet. You get something like these:
I've "flattened" these four down to display as only blue green, for land and water, rather than elevation detail, but even with elevation-based detailing added, they still don't look very realistic. See the two images below for an example of what I mean.
They lack the long, parallel, relatively-narrow systems of mountain like the North American Cordillera. Missing too are mountains like the Himalayas and Alps, wider bands of mountains resulting from different plate interactions.
There are ways to try to improve upon these methods, but the fractal methods simply have some inherent flaws. In future posts I'll address some of those improvements (e.g. statistics-based, example-based, etc.), and non-fractal approaches (e.g. crude plate tectonics simulations). For now, adieu.
Friday, August 12, 2016
A few words on the logo
The logo/header for this blog was generated using POV-Ray, the Persistence of Vision Raytracer. POV-Ray is a free, multi-platform program that renders a 2D image based upon a 3D model generated from a program-like text file. I wouldn't recommend it for most purposes, as it is only a renderer - there is no export that produces a 3D model that can be used to transfer the design into another program, like an animation or gaming package.
In other words, it turns something like this:
into something like that:
A different bit generates this ringed gas giant.
But I've had experience with it in the past, and it was a useful in exercise in seeing if I could quickly generate a few planets. There are other ways this could have been done; even if I'd used POV-Ray to generate the planets, I could have composited the planets, the text, and the background in a traditional 2D image editing program. There's a lot more that can be done to make planets look more realistic, like add noise, use multiple rings with small gaps for the gas giant, etc. but they'd largely be lost in the logo-sized image. Feel free to play around with the examples below if you want to try it out yourself.
The image used for the background is a public domain image from NASA JPL, and is an amazing image in its own right. Hurrah, our tax money does provide some very pretty pictures. If you download it and place it in same directory as the source code POV-Ray should automatically find it when rendering and use it as the background.
Complete source code for the planets and the background can be found on GitHub under an MIT license. Knock yourself out if you wish. The file in question is LogoPlanets.pov.
In other words, it turns something like this:
into something like that:
A different bit generates this ringed gas giant.
But I've had experience with it in the past, and it was a useful in exercise in seeing if I could quickly generate a few planets. There are other ways this could have been done; even if I'd used POV-Ray to generate the planets, I could have composited the planets, the text, and the background in a traditional 2D image editing program. There's a lot more that can be done to make planets look more realistic, like add noise, use multiple rings with small gaps for the gas giant, etc. but they'd largely be lost in the logo-sized image. Feel free to play around with the examples below if you want to try it out yourself.
The image used for the background is a public domain image from NASA JPL, and is an amazing image in its own right. Hurrah, our tax money does provide some very pretty pictures. If you download it and place it in same directory as the source code POV-Ray should automatically find it when rendering and use it as the background.
Complete source code for the planets and the background can be found on GitHub under an MIT license. Knock yourself out if you wish. The file in question is LogoPlanets.pov.
Introduction
This blog is about awesome worlds. Those worlds could be the world of the past, or the imaginary worlds of science fiction or fantasy. They can be worlds literary, cinematic, or in model form (physical or virtual). They can be complete worlds, or only fragments. I will be discussing fact and fiction, representing digital terrain, interesting aspects of the past and of possible futures or alternate realities. Procedural content generation, creating worlds through code, is one of the major aspects I will cover. This blog can and will cover a lot.
I shall also discuss, not just the worlds, but something about reading science fiction, fantasy, history, and other works. As I progress with attempting to write a novel, I may share some snippets of that, as well, or thoughts on the creative process.
I shall also discuss, not just the worlds, but something about reading science fiction, fantasy, history, and other works. As I progress with attempting to write a novel, I may share some snippets of that, as well, or thoughts on the creative process.
Subscribe to:
Posts (Atom)