0% found this document useful (0 votes)
5 views2 pages

Bezier Roller Coaster Simulation Project

Uploaded by

rimshanasir112
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views2 pages

Bezier Roller Coaster Simulation Project

Uploaded by

rimshanasir112
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Project:

Simulation of a Roller Coaster or Circular Flight Using Bezier Interpolation and


Visualization of Differential-Geometric Quantities

This semester, we have primarily focused on the elementary differential geometry of


parameterized (space) curves. For space curves, this involved studying curvature and torsion,
as well as the Frenet frame and parallel transport frame.

These quantities will now be utilized in the geometric modeling/visualization of the roller
coaster track. The entire track is to be composed of individual cubic Bezier curve segments,
forming a continuously differentiable (smooth) and curvature-continuous (C2 or G2) closed
loop.

Bezier interpolation will be used to construct the track. The path will be formed from
individual curve points read from a text file. These curve points should be interpolated such
that a closed, continuous, smooth, and jerk-free loop is achieved.

The resulting curve should be twice continuously differentiable. It should be closed and
realized with cubic Bezier curve segments.

This project is inspired by the software internship at TU Braunschweig – Institute for


Scientific Computing – for the "Roller Coaster Editor/Simulator." The documentation for the
software project is available in the EMIL course and illustrates the geometric modeling in
Chapter 4.

This documentation is straightforward and easy to understand, and it involves mathematical


methods.

In line with our lecture content, the following quantities should be calculated and separately
visualized for the respective track course:

 Curvatures κ1(t), κ2(t), and torsion τ(t) as functions of the parameter t


 The magnitudes of the 1st, 2nd, and 3rd derivatives (speed, acceleration, and jerk) as
functions of the parameter t
 Curve with revolving Frenet frame (controlled by ailerons and elevator)
 Curve with revolving parallel transport frame (controlled by rudder and elevator)

The goal is to model the track as a surface, where a straight line segment or a circular arc is
moved along the curve (i.e., in the direction of the velocity vector) and always lies in the
plane spanned by the normal vectors. The line/circle segment rotates with the Frenet frame at
the curve point.

The roller coaster car should be simulated by a sphere, a cube, or simply a point that moves
along the curve together with the respective frame.

Another aspect of the project is creating samples for the track course.

Predefined track courses are available as trk files, which will be used for the simulation.
These are provided in the Moodle course.
Additionally, a unique (non-trivial) track course should be designed. The points of the track
should then be stored in a file that will later be read for Bezier interpolation. The custom
design should be realized as a sampled torus knot or another variant of a discretized Fourier
knot.

By storing the sample values/curve points in a uniform format, other track courses for the
roller coaster can also be interpolated, and their behavior can be geometrically and
dynamically compared.

A simple text file should be used, with three floating-point numbers per line for each point of
the track and a delimiter (space, tab, or semicolon), i.e., the good old CSV format.

Of course, you can also choose another format. However, you must then provide a program to
convert from the CSV format to your format and back, so that your project implementation
can be tested with other data, i.e., curve courses.

The programming should be done in Python or JavaScript, or alternatively with Matlab.


Visualization can also be done in Blender, with the programming in Python, using Blender
primarily as a display tool/framework.

The program code should be self-documenting, meaning it should be relatively easy to follow
through sufficient comments.

Submission: Upload the files in the Moodle course (program code, track files, and a brief
documentation for using the program, as well as any conversion programs for custom track
file formats).

You might also like