Slashdot Mirror


Fit An Entire Planet In 90k

missingmatterboy points out this "interview with Dr. Ken "Doc Mojo" Musgrave, a computer graphics pioneer who worked with Benoit Mandelbrot generating fractal landscapes and who's designed custom shaders for Hollywood movies. His latest project is called MojoWorld and it uses the power of math to generate infinite-resolution fractal landscapes? one entire planet at a time. It's going to have an open SDK and, to top it all off, a Linux version is also in the works." This is a fascinating project.

11 of 122 comments (clear)

  1. Rebuild Planet Earth by KrunZ · · Score: 2, Interesting

    MojoWorld:>rebuild Earth.planet

  2. Old news... by chronos2266 · · Score: 5, Interesting

    This has been done quite a few times by quite a few people. Fractal planet 3d engines show up all the time at www.flipcode.com

    I've seen some with complete weather and day/night cycles. Some really inspiring stuff.

  3. Marginal by debrain · · Score: 5, Interesting
    Not really that impressive :) (tongue in cheek). I worked on the preliminary part of a massive multiplayer online game whose universe was a fractal, containing data right down to the shape and size of trees at every point on the planet. The interesting thing was that the modeled universe took time as a variable, and it evolved gradually with small increments of time, thus the universe (which was ultimately nearly infinite from the human perspective), right now was not the same as the universe yesterday, but very similar so those places / things you've become familiar with are still present, but have evolved slightly.

    Planets would move, trees would grow, forests and deserts would change shape, oceans would rise and recede, etc. (Taking into account that the planet is of the type to support something like forests and oceans). The variables that define a "place" as a human looking onto the universe were coordinates and time, and a perspective (direction/angle) from which to project back information. Yet the visual perspective was only minor compared to the actual number of calculable variables, like temperature, and the like. Of course, strange things like density has to be accounted for with Newtonian physics, but that was ironically easy. Choosing what was the cause (is temperature random, ie. fractalish, or a product of Newtonian; really it's a combination; random in a Newtonian'ish thermodynamic space, but random only because we wouldn't actually want to calculate that sort of thing) and what was an effect was the hard part.


    It is an interesting premise, isn't it? Taking a mathematical curiosity (the fractal) and doing something useful with it like creating a universe, or planet in this case. Somewhat matrix'ish.

  4. volumetric pixels by johnjones · · Score: 4, Interesting

    is volumetric pixels this sort of thing ?

    fractals are good for storeing large amounts of information but decompression is hard and how do you then represent the information useing standard methods or volumetric pixels type approach ?

    seems nice but I would like more details before makeing any jugment

    anyone have details ?

    regards

    john jones

    p.s. I am sure a game used this type of thing before

  5. Looks quite cool, but not photorealistic by RNG · · Score: 5, Interesting

    I've just checked out the sample mojo-world gallery (I'm a sucker for any web pages that claims to show me (almost) photo-realistic rendered terrain images) and while the output is quite cool, it still has ways to go before it's going to be photorealistic. On the other hand, the point of MojoWorld is that you don't need a lot of data to re-create your scenes: you just save the seed parameters (which are tiny as compared to a real height-field) and the engine re-creates the scene from these parameters.

    I have been working on terraform (which is aimed more at the generation and manipulation of digial terrain rather than the rendering of it) for a while now and in the course of doing so have learned a few things about fractal terrain generation. The fact that you can regenerate the terrain from a few seed parameters is not that special (dimension, scale factor, random seed, etc); these are the kind of parameters that are typically passed to these functions anyways. The more interesting thing (to me) is that they have apparently found a compact representation of all the data needed to create a (semi)realistic scene from it. All in all, I think this is quite cool. Hopefully they (at some point) will write a white paper detailing some of the algorithms used by the (closed source) generator.

  6. Sierpinksi Gadgets by Quay42 · · Score: 4, Interesting

    On the related note of fractals and their generation; A few years ago while playing around with GWBASIC (!!!) on a Tandy 1000 Color I discovered you could generate sierpinksi gadgets (there's a picture of a 3D one that I managed to find at http://www.angelfire.com/mo3/mysteriesofscience/ga mes.html) by choosing 3 coordinates on the screen (for the vertices) and then choosing a random point somewhere else. Then, choosing between 3 random numbers (or anything that has 3 equally probable events) and plotting the point halfway between the current point and the vertex corresponding to the chosen number, a sierpinski gadget slowly "fades" in.

    To make it look even better, you can choose a color for each vertex. I also found you can do similar things with other shapes (pentagons, squares, etc.) Perhaps this algorithm is a well known way to generate the Sierpinksi Gadget. The amazing thing is how *small* the code is!

    pseudocode (possibly with mistakes...its been a while)

    Sierpinski
    Choose 3 equidistant points on the screen: {x[0],y[0]},{x[1],y[1]},{x[2],y[2]}
    Choose random coordinate on screen (x,y)
    while no user input
    choose random number n from {0,1,2}
    plot ((x+x[n]/2), (y+y[n])/2))
    loop

    Cheers,
    jw

    --
    "Has anything you've done made your life better?" - American History X
  7. This really isn't that impressive... by Anonymous Coward · · Score: 4, Interesting
    Generating fractal landscapes is really pretty well understood these days and I'm afraid that Ken Musgraves latest efforts, whilst good, are really nothing special. The standard at the moment is set by Terragen - which is an order of magnitude better than Musgrave's efforts.

    Musgrave is also extremely annoying in the way he dismisses enhancements as trivia and gives the impression that he's done the hard work. He hasn't - he's done the easy bit. For example placing vegetation on his landscapes is a very, very hard problem. Lets see him place a forest of oak trees besides a river, with realistic rendering of sunlight through the leaves, the roots in the soil, and the shadows of the leaves on the ground then I'll be impressed.

    There are packages that are attempting to do this - World Construction Set, WorldBuilder and GenesisII come to mind - there are many more (including the granddaddy of them all Vistapro). None look as realistic as Terragen though - again something that can probably be ascribed to the fact that terragen, like Mojoworld, chooses a particular type of landscape in which to work. Unlike Mojoworld though, Terragen is photorealistic.

    Creating a general-purpose photorealistic terrain renderer is probably on of the hardest problems still available in computer graphics. And while Musgrave deserves respect for what he has achieved over the years, sadly he's one of those people who simply isn't as good as he thinks he is.

    1. Re:This really isn't that impressive... by Anonymous Coward · · Score: 1, Interesting
      You're missing the obvious here. MojoWorld is attempting to do this in real time. TerraGen does not.

      In any case, TerraGen is pretty fucking far from photorealistic. Get the right camera angle and it looks great; get the wrong angle and you're in polygon hell.

      I'm not impressed with any of this shit.

  8. 90k worlds? Pah! Elite had 8 galaxies in 48 bytes! by evilandi · · Score: 4, Interesting
    Elite (1980's 8-bit wireframe space trading game) used only 48 bytes to carry names, descriptions, positions and trading data on hundreds of star systems spread across 8 galaxies (see Elite Faq question 13).

    Elite used Fibonacci Numbers with a eight 6-byte seeds, plus a few dozen bytes of look-up tables, to achive this. The principle was very similar to MojoWorld's use of fractals, but Fibonacci series are considerably quicker to process, particularly on an early 80's home computer.

    --
    Andrew Oakley - www.aoakley.com
  9. Not if they want to make the big money... by bugg · · Score: 3, Interesting
    Touch, taste and smell are "immediate" sensors--they must be in contact with what they're sensing. Fooling them will be much harder. But are they necessary to a perception of "reality?" Probably not.

    Not if they want to do well in the adult entertainment business. And don't think I'm kidding: the sex-starved portion of the population is willing to pay billions to see something like this developed.

    --
    -bugg
  10. Generating fractal landscapes... by cr0sh · · Score: 4, Interesting

    Generating a simple fractal landscape is both an easy and a difficult process. The algorithm is relatively easy - it is the implementation that can be difficult.

    It is possible to implement a fractal landscape generation system on using only 2D graphics, which produce an image that looks amazingly 3D in scope, but isn't. Of course, it is possible to do the same algorithm in a 3D coordinate system.

    I came across the 2D method first in an old Creative Computing article from around 1983 (the issue was the "graphics" issue, and in addition to the fractal mountain code done in BASIC for a couple of systems, there was an article that detailed making photo masks and combining computer graphics and real photo techniques to produce cool effects for the time - today, photoshop works wonders). The BASIC code was for a PCjr (IIRC) and an Apple IIe, but I converted it to my TRS-80 Color Computer - and it ran fine (though very slowly).

    Essentially, the process is:

    1. Select three random (X,Y) points on the screen - these form the "base" triangle.
    2. Find the midpoints of each side of the base triangle. Split each side in half (subdivide it), and move the midpoint up/down by a small random amount (in the Y direction on screen), and join the points - the deformed triangle should now be composed of 4 sub-triangles.
    3. Repeat the process on each of the resulting sub-triangles n-times.

    Of course, n tends to be a small number - around 7-10, depending on the resolution of your output device. There is also a way to add "water" by deciding on an certain "Y" level to disallow drawing of "land", instead showing "water" (where "land" is green, brown, or grey, and "water" is blue).

    That's the basic algorithm, and the hard part is keeping all the sub-triangle's vertices joined, so that when one is shifted up, the adjoining triangle's vertex shifts up as well. In the Creative Computing article, this was accomplished with arrays and really complex code that wasn't explained too well. Today, you would probably use a combination of linked-lists of objects (where each object represents a vertex), and of course a recursive function system. It would end up being more of a memory hog, but it would be easier to code as well.

    Taking the algorithm into the 3rd dimension would be easy, since you would plot the base triangle on the X/Z (or X/Y) plane, then as you went through the subdivision process, you would simply change the height of each vertex in the Y (or Z) plane respectively.

    --
    Reason is the Path to God - Anon