Ideas for updating A.N.T landscape script.

Hey I want to update the A.N.T script, does anyone have any ideas or feature requests?

Try and provide an idea of how to implement it if you can?

make it easier to use? I dont mean to sound patronising, but having just looked at it, I cant tell how to use it. does it create textures? if not thatd be cool... could you make it more like VUEs realtime surface editing thing? will that be possible in 2.5? and the link to the ant in your linked posts dead.
perhaps link it to that micropoly thing so it has a higher resolution closer to the camera, but further away its simpler? perhaps make it create meshes in strips, like bryce exports. that can then all be put on different layers, so its easier to manipulate on slower a machine.
just some thoughts. what are the limitations here?

Ok now that I have that out of the way let me say this. This is a great script. I have downloaded every version of it since is was first posted years ago. But I have never used it. If I need to do any landscaping I use Terragen and import with ter2blend. Why? Becasue I do not feel like “just playing around with it” to understand what all the option in ANT are. I mean I can tell it is an outstanding script/applet just by seeing some of the screen shots that people have posted. BUT if you cannot figure out how to use it what use is it?
Do not assume that everyone here knows what and “octave” is. Or what “celnoise” is. If you start throwing around terms that YOU know do not assume that everyone esle does too.

I have used ANT since it first was released too.
I wrote some documentation here, although it’s slightly outdated, it’s still useful.
ANT Docs
The key to using any script like this is to experiment & try out the settings for real time viewing of your results.

ANT landscape is a very powerful tool.

As for updating the script,
It would be best to update to Blender 2.5.
I think the api should be able to handle such a complex script soon.
There’s Plenty to be done & Plenty that could be added.

If I can break it down a bit:
Interface Design >
Changing the interface to suit 2.5 will be interesting.
Much planning will be needed here to get it right.
New Features >
Speaking of Terragen…
Integrating a Materials/Textures library.
Updating The Fiat Lux sun time/date/location script.
(so it can be used as a standalone or when the ANT Panel is opend you have the sun panel open too.)
Add a Random Vertex Select function for object placement on mesh.
World backgrounds & Ambient Lighting Effects.
Cloud creation, Water creation & textures.

That seems a lot, but for some of the functionality of Terragen, that’s whats needed.
Impossible? No, many of these things can or could be done.

Set your sights really High.
Then make something Huge!

A few questions…


How old is the most recent script? I think its 2006 but Im not sure.
If it can be upgraded to the most recent version of python could you expect any speed improvements?
Is this mostly made for a still render or animation?
If so, what optimisations will be needed to have this in the game engine?
** I was thinking that it might be possible to make a low level mesh, duplicate it, then iterate over it again and provide the higher details that could be used as a normal/displacement map **
What has happened to your library and materials script?
** If I got as far as to add vegetation to a landscape, could your library script be used like an asset manager? **
Is blender 2.5 even stable enough for writing this script?
Any idea if not how long until possible?
“Updating The Fiat Lux sun time/date/location script.” Link?

My dissertation for university is “Automatic scene generation in real time”. I can ignore the real time factor right now and Im pretty sure thats impossible in blender anyway. But I will need to show it in the game engine. If you have seen it theres a demo of a sea somewhere that Company Twilight 22 made before they cancelled their project, I thought maybe it would be possible to use a script to generate variations of it for any water on a map?

I guess cloud generation would be using the new voxel smoke methods? How would it be possible to do this in the game engine though? Lots of alpha images?


Have you seen terragen 2? It looks amazing but I dont know if it would even be possible to have that in blender, nigh impossible probably to have that kind of detail in run time… If anyone has any ideas on how that would be possible, Im all ears open…


I think that the micropoly script should not be added as it is an adjustment after the generation. And also you would have to wait for ages for it to finish. Saying that though, I guess I could add an option to run it afterwards…


Im new to python but dont let that sway your opinions on this, I’m pretty adept at java (or the last 2 years at university may have been a waste of money :s) How possible would it be to open up blender to more languages? I know that there is a java port and someone suggested having a plugin like interface to open blender up to more languages like java, c++, c# etc…

Any more suggestions?

@ Meta-Androcto “Add a Random Vertex Select function for object placement on mesh.” theres already random vertex select in blender, its under the select menu.
“Cloud creation” theres already a cloud creation script. I think its a bit unfair to ask him to make a whole wolrd editor, however, I do think all there things should be brought together and intergrated.

@ mandoragon I was being a bit silly in my suggestions. but I just wanted to know what your limitations are. But I think making it more like Vue would be the logical step forward.

What is your vision of the future of landgen?

Hello, my ideas are:

Erosion algorithms - I wanted to do this myself as a node in the node editor. I think node editor is ideal for generating heightmaps and modyfying them, only disadvantage is you cannot do endless or huge maps.
So the idea is - either implement some erosion algorithm as part of A.N.T., or make nodes for landscape generation, and make a tool which would superceed a scripted solution.

particle-based instanced objects, like stones , vegetation, rocks and maybe even cities(plug in the Open City engine), with generated weightmaps(based on slope, various noise textures…) for their distribution. This with the new render instance support would enable rendering of highly detailed environments.

not sure if A.N.T supports generating of textures?


well the key part of my dissertation is ‘scene’ so theoretically I can do anything I want to,
I wanted to do landscape, then city, then plants given time.

One problem with this though is that for any well detailed terrain you would need a very powerfull pc.

When I looked at the A.N.T script this morning it gave a mesh back that would probably be a few miles width and length in dimensions, so maybe I need to concentrate on working a bit smaller like the Yo Frankie demo. (although there may have been some dimensions in there that I could have tweaked)

But I would prefer to keep the ideas to terrain first and see where I can get to. Any idea if its possible to convert a volumetric texture into a mesh?


Those ideas are all those that I have been thinking about. I have been researching some of those, especially erosion teachniques.

Could you provide any links or further information?

Make it work on something other than a grid. I noticed, in the latest version, that you have the option of selecting or generating a mesh. So I created a fairly dense sphere and chose that as my mesh and none of the features worked. I could not get a landscape in a spherical form. You should be able to assign the terrain to any mesh, not just the grid.

Texturing should be automatic. It should use the full 16 materials maximum for the mesh. So after generation, I should have a single material with 16 sub materials that are logically assigned based upon height/slope.

Vertex groups should be generated automatically based upon height or slope so tree/plant population with particle systems would be a breeze.

Some erosion techniques documented on siggraph suggest dropping rain (particles) on the entire mesh and seeing where most of the particles travel. ie) where the streams and rivers would occur.


Any idea why it is 16 materials maximum?

I agree with vertex groups. I think that some of the terrain generation techniques may require the grid, or maybe it would work with a dome if you used the normals of the terrain in calculations…

If I wanted to do anything in blender… for vegetation theres bgen4 for trees… but this is very expensive when it comes for processing time, and If I wanted to have a scene with 1000 trees with maybe 5 different variations of the same tree (or a lot more) then can you suggest any other way of morphing vegetation so we have some difference (realism) between them?

Each mesh can only have 16 materials (its a Blender limit, not an arbitrary one, at least in 2.4x).

So one could delve into the blender code and make 16 a variable that a user can change in the updated preferences of 2.5?

can you suggest any other way of morphing vegetation so we have some difference (realism) between them?

That’s were preparing vertex groups based upon height and or slope is all we would need. Let’s say we want grass in the valley, trees along the slopes and shrubs up high. Use 3 different particle emitters on the same mesh each distributing it’s mesh group based upon the vertex group. Let the particle system handle the count and the random group distribution. The script only needs to make the vertex groups. The more vertex groups the better you could define your landscape with particle populated meshes. Imagine having just the erosion path as a vertex group. You could distribute small pebbles or boulders along it.

My last visit to this technique was here:

I have read that wiki page. But it is at best a reference page. What is needed is a TUTORIAL with screenshots that lead one step by step through the process of creating a landscape. Just moving sliders and making choice without knowing their effect is frustrating for me.

Thats all fine, but thats placement of vegetation, I mean morphing of a tree so every tree is not the same.

One way of doing it would be to create an algorithm python script that would make a few different alterations which are noticeably different but depending on how many different species of trees and other plants we need this could prove difficult. And very expensive (time + processor wise)

Another way is by the resurrection of the library script where users can donate a tree object in which we can get a collection of different plants that the script can then create instances of. However this would need a huge community action to make it a success so I’m not sure how well that would work out…

I dont think you guys should be worrying about trees, thats not within the scope of the landscape script and if one person tries to create a whole tree library, then its gonna be sh*t.
all it needs it random distribution, which it already has the potential for, through random selection, and particles/groups. leave the trees to the tree script, which would hopefully get updated eventually.

I may need it for my dissertation though, I would have thought that with the existing placement scripts out there that I can mod the ANT script to make vertex groups which then use those existing scripts for placement of objects.

So my aim would be to update the landscape generator first, then try and try making/modifying plant and building generators… Making all of them into a scene generator…

Is the blender 2.5 python api out?
I have 8 months or so for my dissertation, could anyone supervise me in the same way that students in googles summer of code had help?

Thats cool, your ideas sound like my ideas. and Ive thought about this lots. the first thing is, the intention shouldnt be them all into one interface, there should still be a tree editor, a terrain editor, a building editor, a cloud and atmosphere editor.
but they should all be able to communicate. you wouldnt want a separate tree editor for the landscape script, but you wont want to put high poly trees on your landscape.
so, you would have a plant library, you select a species, you then press a random button, and it generated a random branch configuration. (you still have the option for a totally user/custom creatable tree ovcourse.)
you then have the option of your tree created in 3 ways. high poly, low poly, billboard.
now you have your trees, they would be applied, using random vert select/ or particles, high poly near the camera, low poly mid way, billboard at the back.

the landscape generator, should be like VUE, not, like terragen. which looks like that, you grab your terrain, you can look around it, you can erode it according to wear types and you can sculpt it, you can import height maps, you can change the resolution, and you can generate texture maps for the mesh, or you can use procedural materials. a user database of simply terrains in the material repository would work, once thats up and running again.

building gen. this should be based around centurys, you have a slider, you select a century, or part of. say 1950s, and it creates buildings in the style of the 50s.
you can randomly, create a city of buildings from different decades (as it would be irl)
all the buildings, can be customisable, again through user database.
there would be window and door templates, which users could then create their own, and others could download, all textures could be changed. from red brick to sandstone etc.

lastly, cloud and atmosphere editor. I think the sun has some basic atmosphere settings in 2.5 but by atmospheres I mean, being able to choose the type of weather then through change of world settings and light height warmth etc it creates the style… also/mist, fog could be linked.

then theres the cloud gen, which we have a script for, which has billboard clouds using the particle system I think. theyre pretty resource heavy atm. perhaps a dome with random cloudy skies created would be more efficient.

tho on a separate note, emitter librarys for the particle system like particle illusion would rock…

so yea, just some thoughts.

I agree with some of the things you said but making it like vue would probably mean mucking around with blenders code rather than making a script.