Math By Arrows - Procedural Organic Growth in Cinema 4D

Taught by Manuel Casasola Merkle

Course Number:
Software Version:
Original Run Date:
July 2013 
8 hours 8 minutes 
"Math by Arrows" is an introduction to the mathematical concepts necessary to generate procedural organic growth inside Cinema 4D. The course visually explains some of the basic mathematical and algorithmic concepts of today's computer graphics to give you the intuition of the concepts and help you understand what's going on "under the hood".

If you're not a math genius, don't worry. Manuel Casasola Merkle will give a brief introduction to the basic mathematical building blocks that make 3D graphics work without focusing on mathematical rigor and algebra. He'll explain the concepts visually, with numerous practical examples from the world of parametric organic growth, using dedicated visualization setups to help make the ideas "click". If you've been curious about the geometry that makes 3D applications like Cinema 4D work and always wanted to expand upon the existing toolset by using this knowledge, this course is for you.

We use all the tools necessary to build the setups: Xpresso, Python, Coffee and Thinking Particles. A basic knowlege of these tools as well as a basic understanding of Cinema 4D is required. The course will start with the very basics like vectors and operations on vectors. With these in place the course quickly proceeds to more complicated an practical stuff like Bézier curves, phyllotaxis, dartthrowing and curve framing.

This is a visual course on math without too much algebra but a lot of visualization. The paradigm is that you will understand what a matrix is and how to use it, without necessarily understanding how to calculate a matrix multiplication by hand, as this is something the Xpresso math node will happily do for you.

Manuel Casasola Merkle is a graphic designer and VFX artist with over 15 years of experience. He graduated with his Diploma in Communication Design and 3D Animation from the University of Applied Sciences Nürnberg in 2000. In 2006 Manuel, together with his 3 partners founded Aixsponza, a interdisciplinary design and vfx company based in Munich, Germany. Since then he has been working as a Creative and Technical Director at Aixsponza and realized many projects for high end clients like BMW, Audi, Siemens, MunichRe or RedBull. Manuel started working in 3D with Softimage and Maya but switched to Cinema4D with V4 of the software in 1998. He's a beta tester for C4D and lectures for Maxon internationally.





Math By Arrows - Procedural Organic Growth in Cinema 4D
Watch our overview of the course

Class Listing

Class 1: Euclidean space and understand vectors

We lay the foundation for everything that follows throughout this course. We get to know the euclidean space and understand vectors from a geometric point of view. Then we're ready to have a look at the most basic geometric primitive, the point. Once we are familiar with these points and arrows we learn about operations between them like adding and subtracting two vectors and multiplying them by a single number.

Class 2: Elaborate on vectors

Now we elaborate on vectors. We learn about linear combinations of vectors and how to represent a line inside a computer system in may different ways. We review the line equation in standard and slope-intercept form. Then we have a look at lines as parametric equations and finally as a linear combination of vectors. To illustrate the new concepts we build a linear distribution expression with Xpresso.

Class 3: Linear interpolation expression

We continue with the linear interpolation expression. We enhance the expression by adding a MoGraph style effector based on distance. Therefore we discuss distance and the length of vectors. The pythagorean theorem is reviewed and visually proven. Then we start with our discussion about circles. A polar coordinate system is introduced. Finally we have a look at radians vs. degrees to measure angles as a preparation for trigonometry.

Class 4: Trig functions

We discuss the trig functions sine and cosine as a way to convert between a polar and a Cartesian representation of the circle. Then we describe the circle as a weighted combination of vectors. An introduction to spline curves as triple linear interpolation over follows. Chaikin's Curve is explained. Finally we focus on Bezier curves. We explore the De Casteljau algorithm to calculate spline points and build a Bezier curve from scratch inside of C4D.

Class 5: Bezier curves

We enlarge upon Bezier curves. From the geometric interpretation we derive the explicit formula for Bezier curves and find the Bernstein polynomials. After having a deep look at t and the parameter space we have a look at the "Align To Spline" Tag, Sweep Nurbs and MoSpline inside of C4D to see what they've in common. We discuss the different methods for "intermediate points" on splines in C4D.

Class 6: Baroque ornament is built and made grow

A baroque ornament is built and made grow. First we discuss curve continuity, tangents and curvature of splines and what makes a spline appear smooth. Then we draw and import ornament splines and use them to model a baroque ornament inside of C4D. Different possibilities for growth are discussed and after choosing a route the ornament is prepared for applying growth expressions.

Class 7: Baroque ornament asset is finished

The baroque ornament asset is finished. We build an Xpresso expression to grow an individual vein and discuss the idea of creating a self contained component out of this growing vein. Then these components are used to build the entire hierarchical asset. We have a look at relative references and user data to create individual veins that attach to each other automatically.

Class 8: Distribution of plants on the plane

This time we have a look at ecosystems. In detail we focus on the distribution of plants on the plane. To mimic this behavior inside the computer we create a dart throwing algorithm with Thinking Particles in C4D. We write a python node to be able to perform two iterations over the particle array per frame. TP execution order and groups are explained.

Class 9: Finishing up with ecosystems.

Finishing up with ecosystems.

Class 10: Phyllotaxis

We look at phyllotaxis, the science of the distribution of individual parts on plants. We analyze how different species grow and discuss the scheme that's responsible for the look of plants like pines or palm trees. Then we develop an Xpresso expression to mimic this behavior inside of C4D. Finally Manuel shows you a finished phyllotaxis Generator to generate different types of plants. These can then be used to populate the ecosystem.