Fractal Geometry in Python
4.2 (19 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,256 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Fractal Geometry in Python to your Wishlist.

Add to Wishlist

Fractal Geometry in Python

Intermediate Concepts in Fractal Geometry Programmed in Python
4.2 (19 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,256 students enrolled
Created by Nicholas Jacobi
Last updated 9/2016
Current price: $10 Original price: $20 Discount: 50% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 4.5 hours on-demand video
  • 19 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Graph anything in Python using the Tk interface
  • Utilize Python's Turtle graphics system
  • Create some of the classical fractals such as the Koch curve and Cantor set
View Curriculum
  • Visit and be prepared to dowload Python at the start of the course
  • Basic programming knowledge desired but not required

This is an introduction to both graphical programming in Python and fractal geometry at an intermediate level.

We learn through coding examples in which you type along with me as we go through examples of fractals created with iteration, recursion, cellular automata, and chaos.

These concepts are implemented in Python using it's built-in Tkinter and turtle graphics libraries, so no special packages have to be brought in by the user, in fact by the time we are done you could write graphical packages on your own!

By the end of these lectures you will

  • Have the tools to create any graphical object in Python you want
  • Understand and create classical fractals such as the Koch curve, Seirpinski triangle, and Dragon curve
  • Be able to use recursion and iteration in Python functions
  • Use the concept of cellular automata to animate objects in Python by playing Conway's Game of Life
  • Create islands and coastlines by playing Majority Rule
  • Explore the work of Feigenbaum and learn about deterministic chaos

Who is the target audience?
  • Programmers at a beginner or intermediate level who are exploring Python
  • Students of mathematics of any age
  • Computer scientists who wish to learn mathematical programming
Students Who Viewed This Course Also Viewed
Curriculum For This Course
28 Lectures
Introduction And Basic Graphics
6 Lectures 40:56

I will introduce myself in this lecture and proceed to go through some of the goals of the course.

  • Learning Python
  • Creating fractals and exploring fractal geometry
  • Having fun!
Preview 02:44

We will discuss the general idea of a fractal and talk about randomness in general.

Preview 06:23

At this point we will install Python on our computers and go through some simple coding structures in the language

Preview 11:40

We will look at the baseline graphics package in Python, the Tk interface and do a simple drawing.

Tk interface

For our first classical fractal we will create the Cantor set in Python's Tk interface.

Preview 10:11

At this point we will go through a few interesting facts about the Cantor set, in particular the concept of dimension in Fractal geometry as it is incongruent to normal geometry dimensionality.

Cantor Set - Interesting Facts
Fractal Creation Using L-Systems
7 Lectures 01:17:49

The Turtle graphics system in Python is built on the Tk interface and is a great logical shortcut to drawing the kind of patterns we are going to create.

Turtle Graphics

Today we will review a simple flow chart description of an L-System, a way to model natural growth, and then proceed to a live coding exercise in which we will use string manipulation to model algae growth.

L-Systems: Modeling Growth

In this lecture we will combine what we've learned in the prior L-System and turtle graphics lessons to create the Koch curve. This curve, published in 1904 by Helge Koch opens up the general possibility of creating fractals through simple L-System interpretation.

Creating the Koch Curve

Some facts about the perimeter, area, and dimension of the Koch snowflake.

Koch Curve - Interesting Facts

We will now use the L-System approach to construct a simple, non-intersecting dragon curve. This serves as an example of how extensive the replacement method can be and how easily the code we wrote in can be recycled into other fractals.

Creating a Simple Dragon Curve

In this lecture we are expanding on our prior code for the simple dragon fractal to create the Jurassic Park dragon curve, which is our first space-filling fractal. At the same time we are dividing the script into two sections

  1. A generalized function for creating fractals in turtle graphics
  2. A main method created in a style that is standard for Python projects
JP Dragon Curve and A General Python Method

As a brief break from our L-System creation we create an iconic fractal using recursion in Turtle graphics. The Serpinski triangle can be created in a number of ways and we will see it again as we continue to look at L-Systems and later as we delve into Cellular Automata.

Creating A Serpinski Triangle Recursively
Modeling Growth With L-Systems
4 Lectures 37:37

In this lecture we will learn how to stack turtle states, essentially adding a recursive element into our iterative L-System, and use it to create a simple fractal plant.

Creating A Fractal Weed

We will take the next step in our L-System approach to modeling growth by adding a recursive aspect to our system which allows for branching patterns to occur and is great for creating trees and bushes.

Creating Trees and Bushes

At this point we can show how these growth algorithms can be used to fill space and create Fractal patterns that are fully two-dimensional.

Hilbert Curves and Filling Space

We will revisit the creation of the Seirpinski triangle using L-Systems, also called the Seirpinski's Arrow system.

Seirpinski Triangle L-System
Cellular Automata
5 Lectures 01:02:06

In this lecture we understand the concept of a Cellular Automata and perform a simple print based automata operation.

Cellular Automata

At this point we get more sophisticated in our printout and implement Rule 30, a specific one-dimensional automata.

Rule 30: A 1D Cellular Automata

This is the first part of our creation of the Game of Life automata in which we use the Tk interface to create a grid for two-dimensional automata creation.

The Game of Life, A 2D Cellular Automata, Part 1

In this lecture we finish our creation of the Game of Life, applying the rules of the game on our grid and observing what happens as we run it.

The Game of Life, Part 2, Final Program

Using the same grid from the Game of Life, we now implement a set of rules called Majority Rule and observe the output.

Majority Rule
Quadratic Iterator: Bifurcation And Chaos
5 Lectures 01:03:08
Introduction to the QA

Graphing the QA

Graphing the Iterations

The Feigenbaum Plot

In this lecture we expand on the Feigenbaum plot just created to add some event driven process items to zoom on different values for the a parameter.

Feigenbaum, Event Driven Processing
1 Lecture 02:50
Conclusion & Review
About the Instructor
Nicholas Jacobi
4.2 Average rating
19 Reviews
1,256 Students
1 Course

I've been performing mathematical programmer for 20 years across a variety of languages. After starting my career as a game programmer I moved on to become an actuary. Over the past ten years I have been coding actuarial based applications and making business decisions for a variety of insurance companies.