Search Unity

This blog post is written by Sándor Moldán (Nekharoth on forums) who has been working on Terrain Toolkit to help generate realistic terrains in Unity Editor. The project was one of the four selected projects that were selected for the Unity Summer of Code.

Terrain Toolkit


The Terrain Toolkit is an integrated set of tools for the Unity Editor which is designed to streamline and improve the workflow involved in creating realistic terrains for games. The toolkit enables the creation of large scale, realistic and playable game worlds within a very short time span.

Unity already has a powerful terrain engine as one of its core features. The Terrain Toolkit expands on this by providing the user with the ability to rapidly create a variety of different landscapes directly within Unity without needing to use third party software. An additional advantage is that landscapes can now be generated dynamically at runtime. This means a Unity game can have a potentially infinite number of levels or landscapes with a negligible impact on the file size.

Integrated terrain creation tools

The Terrain Toolkit provides an intuitive interface within the Unity Editor allowing a Unity artist to simply generate, erode and texture terrain objects. Quick and easy-to-use presets are provided for first time users, while advanced users can tweak low level settings such as rainfall and evaporation to get exactly the result they are after.

Watch the tutorial video to learn more about using the Terrain Toolkit:

A powerful runtime API

The Terrain Toolkit comes with a powerful API that allows developers to call any of the terrain generation, erosion and texturing scripts at runtime.

This Unity web player shows the Terrain Toolkit API in action:

Where to next?

I plan to continue work on the Terrain Toolkit by both making further improvements to existing features, as well as expanding on the feature set to allow even more flexibility in the creation of procedural terrain.

Here are some of the planned features for future versions of the Terrain Toolkit:

  • Texture presets
  • User defined presets
  • The ability to apply pre-defined presets through the API
  • Realtime destructible terrain
  • The ability to create multiple, maskable terrain ‘layers’
  • An advanced hydraulic erosion filter based on a shallow water model
  • Glacial erosion


Comprehensive documentation for the Terrain Toolkit and the API is included in HTML format. The latest version of the documentation can also be viewed here:

Questions and support

If you have any questions about the Terrain Toolkit, the API, or any suggestions for improvements or new features, please feel free to contact me on the Unity forums (Nekharoth) or through my developer blog:

Get the Terrain Toolkit from our Resources section.


Subscribe to comments

Comments are closed.

  1. I´m starting to get into unity3d right now and trying to generate an spheric terrain (planet!). Can´t there be an option for the baseterrain like plane – sphere – cube? I tried to experiment with an geosphere-object and then added an terrain-script but didn´t work.

  2. Ruben van Leusden

    June 17, 2010 at 2:41 pm

    How do I use it?
    I mean.. how do I insert the toolkit into Unity?

    Please answer to:


  3. Chad Chatterton

    March 5, 2010 at 12:40 pm

    Sándor, thx for taking the time to respond. I don’t mean to sound so discouraging, I’m really excited about the work that you’ve done. It’s very nice to have at hand in the Unity editor. As you say I’ve had some experience with creating terrains and I have high hopes that one day Unity will become a really useful terrain modeling tool. So when I say that I have some disappointments they are in relation to this ideal that I have in my mind.

    But I wonder if what I say about the Texturing system makes sense, or if I have just misunderstood the situation? I genuinely think all that is required is the option to apply these parameters to a texture and leave it at that. I can see that you’ve had to struggle to convey a complicated system but I don’t think it needs to be complicated.

    The great potential of Channeled Erosion (the other erosions too of course) is that you could derive a texture splatmap from the effects of the filter – I think I saw such a splatmap on your blog. Suddenly applying textures to your terrain becomes much more interesting, you can capture flow information that height / slope parameters miss altogether.

    But anyway thx for your hard work! It’s really great! I ran through your Toolkit with my students yesterday and I think they were really pleased to see it.


  4. Sándor Moldán

    March 5, 2010 at 2:21 am

    Thanks all for the suggestions and feedback.

    @Chad – Thanks for taking the time to review the project in detail. You’ve obviously got some expertise in the area, and I think you’ve made some really valuable suggestions. Some of these ideas would take some time to implement, but I think some of the other points such as 1-100 scales rather than floating point values and limiting fractal values to a useful range would be some easy ‘quick wins’ that could be fixed very easily. I also think that channelled erosion would be really valuable addition and probably wouldn’t be that hard to get working either. I’ll talk to the Unity guys and see what the deal is with making updates to the version on the site, or if I can set up a Google code repository (or something similar) where people can always get the latest version.

    @Benoit – The ‘maskable layers’ idea was that you could generate terrain formations (mountains, hills, plains, etc.) into different layers and then hide, blend or reveal them using image masks – but ideally this would be done directly on the terrain object with a brush. So you would effectively be able to just paint mountains or plains onto the terrain object.

  5. Chad Chatterton

    March 4, 2010 at 11:20 am

    I spent some more time with the Toolkit and wrote some more thoughts here:

  6. what Michael Charles said, channeled erosion is a must for future releases.

    Also , its a a shame flatten tool isnt in yet. It should be fairly simple to implement to great effect for level design.

    peace out, dicklords!

  7. Chad Chatterton

    March 2, 2010 at 3:08 pm

    Great to see this finally released!

    Some initial thoughts:

    When representing Float values (Texture Height for example) you don’t need to actually use 0.0 > 0.9999999. It is unintuitive to look at, it’s messy to work with and it would be better represented with a scale of 0 > 100 (if you even need much granularity).

    I know it’s not exactly in the scope of your project, but these Slope and height constraints should be available for the Terrain Painting Brushes. So that whenever you paint the terrain you have the option of attributing a slope and height value to the brush.

    I think the Blend parameter options are genius. I would consider promoting the idea that users could sculpt in their own peaks etc according to what their needs are with the standard terrain tools, and then add blends of Erosion Perlin noise and so on.

    Is there a reason that there is no Channeled Erosion? This would seem to be an obvious addition as it’s the most visually descriptive form of terrain erosion and from the player’s level down on the ground tends to be more meaningful.

    Ideally I’d like to see the Erosion filters be descriptive of Rock Hardness and Sediment Flow, as opposed to Evaporation and Entropy for example which mean something to you developing this, but not to me using it.

    In connection with this, the ability to assign a texture to a consequence of an Erosion filter would be amazing. So choose a ground texture you want to represent Sediment and then pull that information out from the Erosion filter. This is what you can do of course with Terragen and World Machine and the like, and it adds a level of sophistication to the result.

    “The ability to create multiple, maskable terrain ‘layers’” sounds good to me.

    Finally.. again not in the scope of your project, but I have to mention it.. what is needed most of all for people who are really interested in creating terrains is a Flatten Brush. By Flatten I mean of the kind you see in Zbrush etc. With this users could actually properly sculpt their terrains.

    c h a d

  8. Hi,

    i think it is a nice feature.i like it specialy API runtime.


  9. Now we just need to get the iPhone a terrain engine so I don’t have to whip out 3dsmax every time I want to make a slight adjustment.
    Nice work!
    I would also love the cut scene editor on the iPhone.
    Doesn’t Unity have plans to merge Unity and Unity iPhone?

  10. @Matthew
    thanks man! i thought UT might want to release it with a new version because it’s a big feature. unity guys are not nasty and i was mistaken. sorry guys :(
    dear Matthew if you think i can help in any way, email me at

  11. Brilliant stuff. Exactly what I need for the current project. Thanks a bunch!

  12. I think a really great feature would be the ability to texture terrains in tangent space (rather than a sort of overhead projection). That way, you could have a nearly vertical cliff face that doesn’t exhibit any “smearing” and could have very detailed features.

  13. @Ashkan:

    A few key features (which are proving to be more difficult than expected) need to be implemented yet before the Cutscene Editor will be released. Unfortunately after the summer I didn’t have as much time to work on it as I’d like, but don’t worry, it hasn’t been forgotten.

  14. I had a quick go at it and it worked great!!!

  15. thank you for the tool. runtime API is the best feature. what about cut scene editor? any news on that?

  16. I have been waiting for this forever. Thank you for a fun, easy, and random terrain toolkit! :-D

  17. Very excited about this, planning on incorporating it into my project ASAP!


    – Taffer

  18. Benoit FOULETIER

    February 23, 2010 at 5:27 pm

    Quite interested in those:
    * Realtime destructible terrain
    * The ability to create multiple, maskable terrain ‘layers’
    … what is meant by ‘maskable’?

  19. Martijn (Tinus) Zandvliet

    February 23, 2010 at 5:16 pm

    Awesome work! I’m looking forward to giving this a go. :)

    Related note: Will there be a new Unity Summer of Code this year?