Originally the codename for an internal 3D engine under development at dotBunny in late 2005. The ethos behind its design principles were easily ported over to the Unity game engine by @reapazor when the studio fully adopted the then young engine in early 2006.

On the project was first committed to GitHub as an open sourced project, while the Unity Asset Store release came much later on due to the numerous restrictions placed on distributed packages by Unity.

Nothing says corporate obsolescence like huge charts everywhere!

Unity Asset Store Downloads By Month

Lines Of Code


Hydrogen is maintained by a small group of invaluable core contributors.

It has been an incredible journey from the initial point of releasing Hydrogen out into the open, to where we have gotten now.

We could not have done it without the support of the awesome Unity community, our industry friends, and our families. We would also like to say a special thank you to a few other entities that have made this project possible.

AAD Productions

AAD Productions Funding

Thanks to this wonderful team we have been able to add some useful functionality for everyones benefit.


FunkyRustic Audio Assets

All audio tracks have been graciously donated to the project by this AAA production studio.

This project is about empowering the community to make great content with Unity.

Every developer out there at some point has gotten something wonderful from the Unity community. This is "our" way of giving back to the community, and we would love to have your assistance at making it better!

When you cease to make a contribution, you begin to die.

Eleanor Roosevelt


So you want to be awesome eh? Sounds good to me! How do you do that? Follow these steps to greatness!

Step 1 - Fork It! (aka Clone Your Own)

Assuming that you already have GIT setup and have a general understanding of how to use it, the first major thing is to fork the existing project on GitHub so that you can make some wonderful additions in your own protected workspace.

What repository do I fork/clone do you ask? That question is tricky, for the average person wanting to contribute to the project, you are going to want to work with the base repository available at:

$ git clone https://github.com/dotBunny/Hydrogen.git Hydrogen

However, some adventuresome individuals may want to get their hands dirty and work on the whole package, from the documentation, to the website, its all available via:

$ git clone https://github.com/dotBunny/Hydrogen-Package.git Hydrogen-Package

The package version has numerous submodules already linked inside of it, so make sure you are doing a recursive clone.

Fork Tutorial

GitHub provides a lovely tutorial available here that seriously can't be beat.

There are two repositories available to be forked/cloned, the first being the primary library repository available at https://github.com/dotBunny/Hydrogen-Package. https://github.com/dotBunny/Hydrogen

Step 2 - Make Something Awesome

This can be as simple as a bug fix or an optimization, or if you are feeling adventurous a whole new feature.

Step 3 - Pull Request

Now you need to notify us about the addition and we will need to review it before it gets added to the main development repository. Thankfully, GitHub has a wonderful way of doing that through their Pull Request system.

Pull Tutorial

GitHub, yet again provides a lovely tutorial available here.

Step 4 - Good Karma

You've done it, you've now contributed to this wonderful project and have been bestowed with the good feeling deep down inside that you have given back something to the community that has been there for you in the past, and will be there for you in the future.

Code Format

We use Xamarin Studio for all of our day to day operations; Unity's bundled MonoDevelop is an older version of it. Now, before you ask why Unity isn't using the latest and greatest, it isn't because they do not want too. Unity's implementation is limited by the version of Mono bundled with it. That version is tied to the major release number of Unity, as they do not break backwards compatibility on sub-releases. Currently, the bundled version doesn't support the built in Code Analysis features, however someday it hopefully will, therefore the Mono code formatting option is used.

Coding Conventions

We try to following the normal .NET naming conventions where we can, with some adjustments to try and follow along Unity's own nomenclature. We try and avoid appending some of the standard things such as "Controller" or "Manager" onto our classes. Microsoft has a very thorough naming conventions guide available here on some basic practices when it comes to how to properly name .NET variables, methods, classes, etc.

Private Member Variables

We currently use the practice of naming our private variables with a proceeding underscore.

public class HelloWorld
		public string MyMessage = "Ping";
		private string _messageResponse = "Pong";

Component Model

A guiding principle in Hydrogen's design is that a user can implement it however they want, but we do try and show them a good way of doing it. It is with that in mind that the 'h' prefixed classes came to be. Each one of them is an implementation of a class tucked away nicely in the Hydrogen namespace. This design has some interesting benefits, particularly in avoiding collisions with other classes and allowing for interesting permutations.


The project uses the XML Documentation guidelines set forth by Microsoft, available here.

More awesomeness, more examples, easier to use, more documentation!

There are lots of things that we would like to see ported over to Hydrogen from some of the internal codebases of dotBunny, but this still remains a side project during regular work hours. So long as Unity keeps on taking leaps and bounds forward, you can expect to see this framework follow suit in making sure to adequately supplement what Unity lacks.