Procedural text generation has never been this easy.

Download Rant Source Code Documentation
Show your support by sending a few bucks my way :)

What is Rant?

Rant is a language for procedurally generating text, written in C#. It combines a markup language with functional and imperative programming concepts to deliver a powerful, but easy-to-use tool for adding rich variations to your text. The ultimate goal of Rant is to augment your creativity with the boundless potential of randomness, helping you consider your next great idea as not just a static concept, but a seed for countless possibilities.

TL;DR: It's basically the opposite of regex, but a lot cooler. You should totally try it.

Delightfully versatile

Create character names and randomized dialogue for your games, generate the world's strangest novel, randomize your website's CSS, or simply roll some virtual dice. The only limits are your imagination and your dignity.

Friendly API

Rant's API is so easy to use that it will bring tears of pure joy to your eyes.

The furrowed impatient beagle skips over the weedy Humboldt penguin.



Add branching choices with optional weighting. Choose the selection strategy, or just leave it random. It's up to you.


Dictionary queries

You can load dictionaries into Rant and query them. This enables you to provide a large vocabulary to your patterns.

Republicans are red, Democrats are blue

Automatic formatting

Want the output converted to Title Case and all your numbers written in binary? Me neither, but you can do it if your heart so desires.

Rant provides many options for automatic capitalization, number formatting, indefinite article automation, and more.

a centipede, an orange and a reporter


Repeaters are a feature of Rant that allow a designated subset of a pattern (called a block) to be run a set number of times with defined behaviors called attributes. They're pretty nifty, especially for constructing lists.

An earwig, a frog, and a bass walked into a bar...

And a spine-tingling abundance of other things...

  • Simple, user-friendly API
  • A massive standard dictionary
  • Unmanaged function exports for C/C++
  • Subroutines
  • Multiple outputs
  • Cross-pattern synchronization
  • Probability modifiers
  • Packages
  • Richard, an experimental embedded scripting language for fine-grained control of pattern behavior
  • Rhyming engine (pop music will never be the same)
  • Import patterns during runtime for easy library loading
  • Unity-compatible!


Do you like NuGet? Of course you do. I do too, so I made Rant available in a convenient package. To easily add Rant to your project, put the following into your Package Manager console:

PM> Install-Package Rant

Try Rant Online

For your convenience, I have created the Rant Sandbox, which lets you run Rant patterns straight from your web browser. You can even save them for later and share them with your friends, if you're into that sort of thing.


I've spent almost two years working on Rant, and I'd be delighted to hear your thoughts on it! Feel free to post on the issue tracker, tweet at me, or email me at nicholasfleck [at] gmail [dot] com.

Support Rant

Building software takes a lot of time and effort, and I am giving you Rant for free because hey, free stuff rocks. However, if Rant absolutely made your day, you can show your appreciation by donating. Donating is completely optional, but it's there for those who wish to support my projects.