As much as I fear heights and roller coasters , I always found Ferris Wheels interesting.  Obviously I’m not alone in this excitement. Who doesn’t find carnival rides exciting? The lights, the sounds, the motion. When it comes to game development, there’s always something that sparks the question of: ”How would this be recreated in the digital form?”

One of the challenges I discovered was that there were only so many ways that you can make a Ferris wheel, but there was only one true way to truly make it happen. I broke this problem down into different sections. modeling, shading, animation, and scripting. 

Now, you can use whatever modeling software you want, and the same goes for the game engine. For this I chose Blender and Unreal Engine. 



  • Static model
    • Pros: Simple model for static shots
    • Cons: Doesn’t leave a lot to work with when it comes to scripting animation
  • Skeletal mesh approach with an armature to rotate the bone for the wheel
    • Pros: Simple with less pieces
    • Cons: Not very versatile if you want to destroy the ferris wheel for whatever reason
  • Modular approach with swappable spokes,  passenger cabins,  and an optional center hub
    • Pros: Parts are swappable, to give designers the ability to prototype different looks 
    • Cons: Requires modeling of more pieces, and initial set up


The goal is to make the ferris wheel as modular as possible, so we’ll go with the modular approach.

NOTE: I will only be covering the parameterization of the spokes and the cabins. These will be created as statics. 



The parts of the ferris wheel that we’ll need will include:

  • A Spoke
  • Perimeter frame
  • Support beams
  • Center Hub
  • Passenger cabin 



Since I’m using Unreal Engine which works in centimeters, I will set the unit scale in Blender to 0.01

And I chose to use a reference for my measurements  with Imperial/feet.

Export all of your pieces to Unreal Engine and make sure that you have your geometry set the faces.


Cabin in UE Spoke in UE

Final Spoke




UV Editing




This is where we get to see the fun when it comes to the UV layout.

NOTE: You may want to go back later and get a little more creative once you see how we’re using the layout.

First, we’re going to create the material for the light bulbs. As you can see, we’re creating the bands with a nice little node that Epic provides. Add a few scalar constants (can be made into parameters later if you’d like), and a time node to drive the scrolling effect. Then we create a couple of Vector3’s for our band colors, then we ultimately connect them all together. We also created a Vector2 to play as a XY coordinate adjuster. 

Create a material instance of the material we just created and apply it to the material slot for the light bulbs on the static mesh of the spoke. 



Now we need to setup the blueprint to make the ferris wheel rotate.

Ferris Wheel Complete



This is a basic example to cover some of the thought that went into the ferris wheel. Now we could have simply model the entire ferris wheel as one  object, but this workflow provides a tool that can be utilized for multiple applications ( like a windmill for instance).  An improvement that we could add is for the frame around the perimeter of the ferris wheel. We can make this  adjustable and modular as well., I will more than likely go back and revise the ferris wheel with that ability  To give level artists more freedom when laying out their scenes.


To clarify further, I’ve included screenshots of the workflow.









The Cabin is coming out pretty good!


UV time. All of the cuts have stacked UVs because the flow of the shader gives a nice effect. We’ll see that later




Getting a little fancy with the hub. We’re here, so why not?


This is where you can get really creative. Everything is fun once you find a fun way to approach it.





Again, this leaves so many options open to play with. You’ll see later.
















Nothing fancy here. Just a mirror modifier doing it’s job.



The wheel will be very simple. Here, you can see how the sizing and insets are doing the magic.