Fractal Geometry in Python
4.0 (20 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,267 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.0 (20 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,267 students enrolled
Created by Nicholas Jacobi
Last updated 9/2016
English
Current price: $10 Original price: $20 Discount: 50% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 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
Requirements
  • Visit Python.org and be prepared to dowload Python at the start of the course
  • Basic programming knowledge desired but not required
Description

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
04:44:26
+
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
05:42

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
04:16
+
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
09:18

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
10:59

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
15:25

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

Koch Curve - Interesting Facts
07:44

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 Koch.py can be recycled into other fractals.

Creating a Simple Dragon Curve
05:03

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
16:02

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
13:18
+
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
13:07

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
04:33

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
11:53

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

Seirpinski Triangle L-System
08:04
+
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
12:29

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
14:48

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
15:56

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
12:24

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
06:29
+
Quadratic Iterator: Bifurcation And Chaos
5 Lectures 01:03:08
Introduction to the QA
12:55

Graphing the QA
14:11

Graphing the Iterations
16:47

The Feigenbaum Plot
12:39

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
06:36
+
Conclusion
1 Lecture 02:50
Conclusion & Review
02:50
About the Instructor
Nicholas Jacobi
4.0 Average rating
20 Reviews
1,267 Students
1 Course
Actuary

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.