Feeds:
Posts
Comments

Posts Tagged ‘cartography’

Four years. That’s how long I’ve been working on these maps. My first “commit” to the git-repository that set me on this journey, a tool for calculating and performing projections from one projection to another, was on December 31st 2012 [0], but I remember that I started working on the code in October or November. Any way — Four years! A lot can happen in four years. I’ve changed jobs twice, and am now working with maps as part of my work as a software developer. This is not something that I would have expected, but it is welcome, and I really do feel that what I’ve learned by mapping Tau Ceti has helped me with my work. Thinking about the balance of aesthetics and information content, the merits and drawbacks of different projections — these are important considerations for what I do today. I’m still an amateur in the field, but an amateur with some confidence built from experience, and who knows something of what questions to ask, even if I don’t have the answers. Four years is also the time that Dr Grijndvar has been away on an extended expedition across the Atlantic, but he returned safe and sound yesterday — welcome home, dear friend!

So what have I learnt, and what have I done all this time? Before getting to that, I would like to start with my usual advice to the reader, that this text is very long and mostly written for my own sake: should you wish to skip directly to the maps, then please do so – no hard feelings! I have also compiled a list of the tools I have used at the end of this article, which may be of interest to some – all are free (as in free speech) and open source, and available for anyone to download and use.

(more…)

Read Full Post »

Guess what? It turns out, that rather than being trivial, sorting is one of the main problems in 3D graphics. The landscape renders ok, as long as the camera is not too low, it should be fine due to its ordered nature (small angles between neighbouring patches), but when it comes to more complex objects it becomes a hassle. There are no simple solutions, and no elegant ones, so I nearly gave up on it, until a friend (who is soon a Ph.D. in 3D graphics, and yet was kind enough not to laugh out loud at my dabbling in his field) pointed out that one can choose only to render surfaces whose normals point toward the screen. That is simple, it is almost elegant, and it solves much of the problem if care is taken when constructing the objects. Three cheers for science!

Below, you can see a picture of the “Lander-craft” (our hero-to-be) hovering over a landscape with a small house. The landscape is generated from data generated using pseudo-random sine waves, by way of an extremely circuitous route involving FFTs, binary morphology, and a lot of heuristics. Unfortunately, the engine of the craft is not visible in this view. Not that it’s visually very impressive, but I had to work quite a bit to get it to “stick” through triangle sorting… The next job is to make the demo interactive and implement some sort of dimming of the light with distance, neither of which should be too hard either…

Lander-craft (our hero-to-be) hovering over a landscape with a small house.

Lander-craft (our hero-to-be) hovering over a landscape with a small house. Click for full-size! (CC: BY-NC-SA-2.5-SE)

Read Full Post »

This post is a follow-up to the previous post on 3D rendering. I thought I’d made enough progress to warrant a new post. The landscape is still the same, but I’ve now implemented a “patch” renderer, where the ordered set of points in space combine to create square (in the xy-plane) patches. If these are above the sealevel, they are flattened and given a blue colour, whereas if they are above it, they are given a green colour. The base colours are then shaded by a simple light scattering algorithm, based on their (approximate) normals’ orientation with respect to a light source, which in my example follows the camera.

The sea is treated in two different ways, depending on whether the “flattening” is performed before or after the normals are calculated: in the first case, the result is a sea with a fairly uniform blue, whereas in the second case the structure “beneath the surface” shows in the colour of the “waves”. Both versions have their merits, but final judgement will have to be made when I’ve seen how it looks when the camera is closer (the intended view for the eventual game is 12 * 9 patches on screen, while this scene is 64 * 62 patches). For this zoomed out version, I’m inclined towards the flat sea.

(more…)

Read Full Post »

My friend Pica pica makes animated GIFs as a hobby, and is very good at it. Some examples are her philosophia naturalis studies at Reanimate Objects and the frankly fantastic (and more artistic) works available in the various Calendars at Unknown Incubator (seriously, check them out!). Another friend — Local Minimum — makes games, of late mostly in 3D. I’m not very keen on 3D graphics myself, but I like to fiddle with things, learning and understanding them, and I do like retro-games, so I decided to write a simple 3D-renderer in Python. It was quite fun mathematics, and I’m rather pleased with the first result, which I present as an animated GIF. Since they both inspired me to it (and since I had the data) I decided to visualise the terrain around their mansion as my first example.

The code is available at Gitorious. It is licensed under GPLv3. It uses NumPy heavily for the backend and currently uses MatPlotLib for visualisation. The latter is rather horrible for the task though, and in the future, I’m planning on making a simple shader algorithm and implementing surfaces in PyGame, though I guess in the opposite order to that stated… But, the future is not now, and now I am tired. Therefore, please enjoy the fruits of my endeavours thus far:

Rotating 3D view of landscape based on height data.

Terrain data from western Sweden, visualised using a primitive 3D renderer I made. The area is approximately 128 * 128 m². (CC: BY-NC-SA-2.5-SE)

EDIT: The future is semi-now! I’ve now rendered the same scene using PyGame:

(more…)

Read Full Post »

Map of an Island

Map of an Island, loosely (by my standards…) based on an island at the southernmost tip of Norway where I spent my summers as a child. (CC: BY-SA-2.5-SE)

The Pica pica challenge continues, this time with the word “Map”. So far enforced creativity works rather well. I decided to go for a classic fantasy-look, since I had recently procured some new calligraphy pens that I wanted to try out  (also, I rather like that kind of map). I’m very pleased with the result, though of course there are things I would like to change or improve.

The map of an is loosely (by my standards…) based on the island Hidra at the southernmost tip of Norway, where I spent my summers as a child. It’s a lovely place, remarkably lush despite the dramatic geology. One of my absolute favourite places in the world. To the North of the island is a narrow strait; on the opposite side from where the small channel dug at the end of the fiord — effectively dividing the island into two islands — is the most beautiful mountain I know.

As usual, the licence is CC:BY-SA-2.5-SE, so share and enjoy!

Read Full Post »

I realised that using the script I had written to make the maps of Tau Ceti, it would be a simple matter to make an animation giving the illusion of a spinning planet. The orthographic azimuthal projection approximates this very well, and once one has access to the equirectangular map, there is nothing special about the two particular hemispheres used in the original maps — any meridian can be used as the centre meridian of the projection!

Edit: I have now added an animation of Gethen as well.
Edit 2: As an astute reader pointed out below, the original animations spun westward, meaning that the sun would rise in the west and set in the east, contrary to one’s expectation. There is no physical reason why the opposite should be preferred, but it feels more natural, and there is evidence in the books for this interpretation, wherefore I’ve updated the animations.
Breaking News! New and improved versions of the maps available here!

(more…)

Read Full Post »

Warning: Wall of Text!
This was supposed to be a post about some maps I’ve drawn, but it turned into a minor essay (featuring fifteen footnotes and two poems). This regularly happens when I set about describing my work (this paragraph is no exception). I am terrible at leaving unimportant details out of the picture. Since the readership of this blog is very limited, however, I have decided that it is all right this way. I wrote it mostly for myself anyway. If you don’t want to read about my love for maps and my love for the works of Ursula K. Le Guin, feel free to jump to the maps, or got to Get Stuff where you will find more versions.
(I also made some animations of the planets revolving which can be found in a follow-up post.) If, on the other hand, you are interested in the background to and process involved in the making of the maps, you are more than welcome to continue reading.

Breaking News! New and improved versions of the maps available here!

Fan-cartography

I’ve always loved maps.

I remember, that when I first discovered fantasy (through The Hobbit, as it were), for many years I held the opinion, that a map was a sure sign of a good novel. If there were ample appendices or a word-list for a made up foreign tongue, all the better! I have since realised that a map is not a sure sign that a book is worth my time, and that not all the appendices in the world could save a bad book from being bad read — I remember one fantasy heptology in particular, whose appendices were beyond most in ambition, but whose story soon dwindled from acceptable to dull, and in the end turned offensively stupid. But I still hold, that a mediocre book can be saved by an inspired map, and that a good map always makes a good book more memorable.

After The Hobbit, I read Tolkien’s Lord of the Rings (great appendices), Eddings (mediocre, but good maps) and the Earthsea trilogy by Le Guin (excellent and with excellent maps [0]). At some point I discovered Science Fiction, and started to prefer it to Fantasy, even though science fiction novels seem to be utterly devoid of maps. Until I discovered The Dispossessed. Science fiction, by an author I knew I liked, from having read The Word for World is Forest and the Earthsea books — with a map!

(more…)

Read Full Post »