Sprout - Foliage Creation in UE4

Sprout - Foliage Creation Tool

Introducing the Sprout Plugin! Our goal with Sprout is to take Unreal’s many powerful systems, mash them together, and bring game-ready foliage generation into Unreal. Meshes, LODs, Leaf Cards, Wind Animation data, Collision, Destruction, all without leaving engine.

We are working to make Sprout easy for both artists and developers to dig into. The core of Sprout is procedural, but there are a bunch of hand editing tools that artists can use to customize their results, even in the levels they are working on.

All of this is based on a data driven design, similar to Niagara, to let users build complex stuff quickly and easily. Users can code their own modules to simulate forces, set mesh vertex colors, spawn leaves, kill branches, define uv densities, and more.

The results you get from the simulation can then be completely hand edited. Branches are represented by splines that can be edited in the Sprout editor or in level. They can also be freely transformed, reparented, deactivated, resimulated, etc. This is also extensible, so users are able to write additional tools to fit their needs.

If you are interested in the project, have questions, or just want to keep up with updates to Sprout we would love it if you checked out the links below.

Sprout- Procedurally create and hand edit foliage from start to finish without ever leaving Unreal Engine.

  • Custom Blueprint or C++ modules shape each step of foliage generation.
  • Spline Components are used to quickly and easily hand edit branches or grow new ones.
  • Sprout Mesh Builder allows users to quickly build and render leaf meshes.
  • In Engine creation of game-ready static meshes without leaving engine.


  • Sprout Graph - Foliage is organized through a graph editor. Build up your hierarchy and easily activate, deactivate, hide or lock your results.

  • **Procedurally Generate Foliage **- Using a Stack System, users can take advantage of a data driven and modular approach to foliage generation, writing, replacing and combining modules to get the results they are looking for.

  • Hand Editing - Sometimes, an artist’s touch is needed. Trim branches, grow new ones, and utilizeSimple Spline Edit to step up and down “subdivision levels” to quickly and easily edit splines while preserving their detail.

  • Node Presets - Save presets of often used nodes to quickly block in foliage.

  • **Final Assets Without Leaving Engine **- Create Static Meshes with custom LODs and Pivot Painter textures without ever leaving engine. Also, Pivot Painter Generators are Blueprintable to allow users to store any data they want into a pivot painter texture.

  • Create Meshes and Textures - Using the Sprout Mesh Builder, users can quickly build and render branch textures, and create leaf cards all from within the engine. We also want to ensure that working with existing Atlases is simple and fast.

  • Niagara Integration- Users can read sprout foliage data directly into Niagara’s particle systems.

  • **Custom FBX Exporter **- Sprouts can be exported with their hierarchy preserved, allowing users to make additional changes in whichever tools they use in their pipeline.

  • More Than Just Foliage - A modular, spline based approach allows users to extend their creativity beyond just foliage

  • Write Custom Tools - Most everything you see here is extensible! You can extend or write your own spawners, modules, mesh generators, texture capturers, branch editors, and more in Blueprint or C++. We’ve tried hard to make sure every part of Sprout can be altered.

  • @ TODO

  • Spawn From Scans - We want users to be able to use their Photoscanned trunk meshes to generate trees. We have some work to do on the UV and material side of this, but we’re happy with the results so far.

  • Chaos Integration - Trees are their own beast when it comes to destruction and with the introduction of Chaos, who doesn’t want to blow up some trees? While not ready to show off yet, you can expect to be able to turn Sprout Data into Geometry Collections that use the hierarchy of your foliage for accurate fracturing of foliage.

  • Polish - We want Sprout to run smoothly, to be easy to understand and be familiar to use. This is gonna take a good bit of polishing but represents the largest part of the work we have left.

  • Learning - We will be making tutorial videos and provide documentation to get new users up to speed with Sprout.

  • Release Plans

  • Currently in developmment with plans to release on the Marketplace. We are hoping to enter a beta period in the next couple months.


Lookin forward to this!

Amazing! :eek:

Would love to apply this technology on Characters & Creatures. Will this be possible?

I’m curious what usage you have in mind! One thing I’ve realized with Sprout is that you can find a use for it just by writing a few extra modules. If you look at the ivy in the first video, that’s using a module to read directly from the trunk mesh’s triangles. This could be used to scatter hair cards, place moss on a character, etc. You could also use Sprout to generate roots wrapping around their legs and then add that to the character’s mesh.

Happy Holidays! Here’s a timelapse showing how we used Sprout to make a Christmas scene in UE4. Don’t say we never got you anything :wink:

Side Note: The walkway was also made with Sprout, complete with procedural vertex colors for the Snow/Brick blend.

1 Like

Yes. I can visualize using the tech for Veins, Roots, Deformed Appendages/Tumors, Horns, Hair, and other Organic Accents. There are plenty of environments tools for foliage, but demonstrating the use of Sprout for Characters and Creatures would definitely set it apart.

Hello, how is the progress of this plugin now?
: )

Hey! Things are chugging along very nicely! We’ve made some big big updates to the Mesh Builder to bring it up to the user friendliness we were shooting for along with a lot of other QOL stuff and MANY bug fixes.

We’re currently on an optimization pass (Mesh Generation is now 10x faster!) after which we’ll go back to bug fixing and then hopefully in the near future a beta phase.

There should be a larger comprehensive update soon where we’ll cover all the things.


This plugin looks loaded! I desperately need a foliage alternative at the moment and on your Twitter I saw that it’s been a while since youve posted. Any updates on release and potential price? Also, it said that you planned on making tutorials, are there any of those up that would show me how easy or difficult this might be to use? Hope to see more soon :slight_smile:

Glad to hear you’re interested! I could probably be better about tweeting but fear not, progress is still being made. I don’t want to make any promises yet about release but I’m happy with the current pace.

At the moment, I’m mostly trying to clean up the bugs I’m aware of before letting you all pile 1,000,000 more on me :yum: I’m also keeping an eye out for usability related stuff to make Sprout as easy to get started with as I can. A lot of that will come down to beta testing though.

No tutorials up yet but in December I posted a timelapse in this thread that kinda shows what working in Sprout is like which you can see above. As we move closer to a beta release I’ll start streaming some content creation so stay tuned for that! In the meantime feel free to throw any questions my way, I’m happy to answer.

1 Like

Thanks for the info I will check that video for sure! I did have a couple more questions if you don’t mind.

I saw we will be able to write our own tools, but I was wondering what kind of creation options sprout will be sold with? Will I be able to achieve similar trees in the videos without having to write my own tools?

Also, I was curious if you could tell me a little more about the instancing of the trees and the LOD set up. It was a little difficult to see in the video when and how you set them up for the tree.

No problem! Sorry for the late reply, I was enjoying a much needed vacation last week.

Everything that was used to make the beach scene and all of the modules I use will be available with the plugin. Think of them like the modules in Niagara. You get different results by combining the modules and the generated data in different ways. I’ll be including some sample assets with the plugin as well and I’m sure some of the beach scene assets will be included. I imagine people writing their own modules for edge cases or very project specific tech-art related stuff but I’m excited to see the crazy stuff people will come up with.

As for creating Static Meshes from Sprout Data, its as simple as pressing a button. From there you get options for including LODs, Pivot Painter data, Vertex Colors, etc.

LODs are added as graphs that just say “Use x% if the vertices from the base graph” or “Spawn y% of the leaves as this node on the base graph”.

I’ll try to record a new video and put it up today or tomorrow to go over how these things work.

1 Like

Here is a video with more detail about LODs:


Thanks for the video, that looks great! And thanks for clarifying the modules bit I think I have a better understanding of it.

I just wanted to ask one more question and then I’ll leave you alone :grin:
How is building trees from scans is coming along? That seems like a really useful feature at the moment.

Thanks for all the info, I’m excited to see the plugin when it is released!

Please keep the questions coming! It helps me a lot to know where I need to be clearer, not just for you but for anyone who might be wondering the same things.

Spawning from scans is coming along well. Its not incredibly complicated. You simply use a module that takes in a trunk mesh, and the module does the rest of the work to identify open edge rings. Branches are then generated that match up to those.

Material blending is done by default by using a vertex color gradient and two UV channels. You can then adjust the blend’s sharpness and falloff in the material. I’m looking into more elegant solutions but I’m happy with the result for now. I’ll post a video about this feature in the next update so you can see the results and how it works.

1 Like