MonoGame.SplineFlower - Create wonderful smooth Bézier-, CatMulRom- and Hermite-Splines!

2.0.0 :champagne: - Complete Overhaul + Hermite Splines!

Breaking Changes: this update is not compatible with older versions of this library!

  • Added the missing “AddCurveRight” override in the HermiteSpline class.
  • Initial setup initialization in all sample controls.
  • Added a new PolygonTextureTest spline and texture called “RaceTrack.json” (CatMulRomSpline) and “roadTexture.png” (Texture2D).
  • Added more possibilities of showing or hiding specific elements of a spline (Lines, Points).
  • The selected tangent text is now drawn directly inside the HermiteSplineControl instead as a forms label.
  • The game project now includes spline json data generated with the revised MonoGame.SplineFlower library update. It defaults to the HermiteSpline test now and loads it as an xnb file with the ContentManger to show that it can handle the latest additions and changes to the library and the pipeline.
  • Updated the samples project to work with the new MonoGame.SplineFlower update.
  • Based on the revised library update the MonoGame.SplineFlower.Content.Pipeline library now reflects the latest changes and additions.
  • New spline type: HermiteSpline! (basically a CatMulRomSpline but with “Bias” & “Tension” parameters as well as moveable Tangents, which gives more precise control over the curve of this spline.
  • Complelty revised the MonoGame.SplineFlower library and gave it more structure and encapsulation, which makes it way easier now to understand and use the library as well as adding new spline types.
  • Updated AssemblyInfo
  • Solution upgraded to support Visual Studio 2019

Heyya, here is finally the update I wanted to do for a longer time now: it’s nothing less than a complete overhaul of the library.

It should be easier now to understand and use it. Unfortunatley this makes it incompatible with older versions. Espacially your generated splines will not likely to load.

However, adding new spline types is now a breeze. That’s why a new spline type is already included with this update; the Hermite Spline!

Let’s take a look:

The Hermite Spline is basically a CatMulRom Spline, but you have more control over it by setting “bias” and “tension” values. On top of it there a moveable tangents (the orange handles in the animation), which makes it possible to control the curve more precisely.

And this is what gives you design and typography powers now. Look at this:

Things like that are created in minutes. Try it for yourself with the included samples and editor project!

I also reworked the PolygonSpline sample a bit, by adding a new road texture and some checkboxes to enable or disable specific visual elements of the spline:

BTW: the MonoGame ContentManager is fully supported!

Load a spline simply like this:
MySpline = Content.Load<SplineBase>(@"HermiteTest");

Nugets are fully generated and uploaded for the ease of integration!


Phew… now I have this library in a state I always wanted it to be. It is ready for further production in other projects. This is incredible if you think about the fact that this library exists since Aug 14, 2018.

But it is definitley worth the time.

My intention is to implement the MonoGame.SplineFlower library into the Mercury Particle Sandbox:

… and let thousands of particles flow on the splines.

Feel free to click on the link above to find out more about my particle sandbox!

And feel free to follow the further development process of my projects here in MonoGame or via steam dev, steam news, twitter, indiedb or even youtube.

Thank you very much for your support and have a nice day! :sun_with_face:

:: Marcel :heart:

2 Likes