1
00:00:05,572 --> 00:00:08,886
So welcome to creative coding for
designers using Python.

2
00:00:08,886 --> 00:00:12,784
This is the third video in
our certificate series, so

3
00:00:12,784 --> 00:00:18,514
we're going to be taking more of a project
based approach to creative coding.

4
00:00:19,534 --> 00:00:24,358
We're going to be expanding upon the
toolkit that we have developed so far, but

5
00:00:24,358 --> 00:00:25,590
through projects.

6
00:00:25,590 --> 00:00:27,758
So let's look at the different weeks.

7
00:00:27,758 --> 00:00:31,447
It's going to be a five course,
five week course.

8
00:00:31,447 --> 00:00:35,265
Starting in week 1, we're going to be
constructing a particle system, right?

9
00:00:35,265 --> 00:00:39,502
So we're going to be using data
structures such as lists, but

10
00:00:39,502 --> 00:00:42,901
also dictionaries to
start thinking of color.

11
00:00:42,901 --> 00:00:47,983
And we're going to be constructing
a particle system that is quite dynamic,

12
00:00:47,983 --> 00:00:52,501
that starts using physics,
that starts kind of really allowing for

13
00:00:52,501 --> 00:00:55,987
kind of more complex visual
effects in the canvas.

14
00:00:55,987 --> 00:01:00,986
So there's a lot of interesting kind
of lessons by developing this particle

15
00:01:00,986 --> 00:01:02,336
system, right?

16
00:01:02,336 --> 00:01:07,078
This is going to transition to the second
week, which is going to be vector fields.

17
00:01:07,078 --> 00:01:10,429
And we introduced vector fields here
because we really want to kind of

18
00:01:10,429 --> 00:01:14,176
integrate them into what could be
a particle navigation system, right?

19
00:01:14,176 --> 00:01:18,771
So while we're going to be looking at
vector fields in isolation, right, like,

20
00:01:18,771 --> 00:01:20,800
how do we even paint a vector field?

21
00:01:20,800 --> 00:01:23,344
How do we create an interactive
tool to paint a vector field?

22
00:01:23,344 --> 00:01:26,164
Then we would actually bring
back the particle system and

23
00:01:26,164 --> 00:01:29,641
see how those particles could
actually navigate through the canvas.

24
00:01:29,641 --> 00:01:34,180
So you start to get the idea of what we're
going to be doing throughout this course,

25
00:01:34,180 --> 00:01:36,584
which is kind of developing projects, but

26
00:01:36,584 --> 00:01:39,277
also integrating ideas
from different weeks.

27
00:01:39,277 --> 00:01:43,149
In week 3, we're going to transition to
start building an ecosystem simulation.

28
00:01:43,149 --> 00:01:47,425
And this is perhaps a more
complex simulation.

29
00:01:47,425 --> 00:01:49,968
We're going to maybe get
you started with it.

30
00:01:49,968 --> 00:01:53,456
We're going to allow you to think
where this could go in the future and

31
00:01:53,456 --> 00:01:56,242
invite you to kind of expand
upon this model yourself.

32
00:01:56,242 --> 00:02:00,080
An ecosystem simulation really
creates a series of species, right?

33
00:02:00,080 --> 00:02:03,286
A series of species that interact
with each other in dynamic ways.

34
00:02:03,286 --> 00:02:07,480
And that's all done by their own
kind of internal intelligence or

35
00:02:07,480 --> 00:02:12,284
simple forms of rule-based decision
making that might allow a particular

36
00:02:12,284 --> 00:02:15,042
species to interact with others, right?

37
00:02:15,042 --> 00:02:18,882
We're going to move later
to pathfinding in week 4.

38
00:02:18,882 --> 00:02:23,245
And pathfinding is kind of
an interesting maybe departure.

39
00:02:23,245 --> 00:02:25,481
It really looks at optimization, right?

40
00:02:25,481 --> 00:02:30,071
How do we optimize the movement of
an entity in a grid structure to

41
00:02:30,071 --> 00:02:32,792
actually arrive to a target, right?

42
00:02:32,792 --> 00:02:36,889
So we're going to see how to do that in
a maybe not very efficient way, and move

43
00:02:36,889 --> 00:02:41,574
towards more advanced and more efficient
algorithms, such as the A star algorithm,

44
00:02:41,574 --> 00:02:45,505
which is a very efficient way of
finding a target within a grid, right?

45
00:02:45,505 --> 00:02:50,030
And we'll figure out that we could
actually implement it to navigate through

46
00:02:50,030 --> 00:02:52,820
mazes, which is a very
fun project to develop.

47
00:02:52,820 --> 00:02:57,724
And finally, week 5, perhaps one of
the most interesting algorithms that I

48
00:02:57,724 --> 00:02:59,995
kind of use for generative design.

49
00:02:59,995 --> 00:03:03,864
We're going to dive into this idea of
procedural content generation with

50
00:03:03,864 --> 00:03:06,515
the Wave Function Collapse algorithm,
right?

51
00:03:06,515 --> 00:03:11,479
We're going to be writing that algorithm
from scratch, understanding how tiles

52
00:03:11,479 --> 00:03:16,368
have compatibility with other tiles,
and how eventually, the relationship

53
00:03:16,368 --> 00:03:21,405
between these tiles could ultimately
result in what we call generative design,

54
00:03:21,405 --> 00:03:25,708
or kind of a procedurally generated
design that is very versatile.

55
00:03:25,708 --> 00:03:27,888
Depending on the tiles
that you construct and

56
00:03:27,888 --> 00:03:31,043
the compatibility that those tiles
might have with one another,

57
00:03:31,043 --> 00:03:34,564
that would actually yield
a drastically different design.

58
00:03:34,564 --> 00:03:36,639
So we have a lot to cover.

59
00:03:36,639 --> 00:03:37,755
These five weeks,

60
00:03:37,755 --> 00:03:41,888
each project is going to use each video
as a continuation of the next one.

61
00:03:41,888 --> 00:03:45,098
So we invite you to start
from the beginning and

62
00:03:45,098 --> 00:03:49,705
go all the way to the end of that week,
as it's going to be difficult to

63
00:03:49,705 --> 00:03:54,346
catch up if you pick one of those
videos from the middle, right?

64
00:03:54,346 --> 00:03:57,994
So that's a little bit
the structure of the course.

65
00:03:57,994 --> 00:04:02,098
It's slightly more advanced, what we have
covered, but nothing that you couldn't

66
00:04:02,098 --> 00:04:05,642
cover with what we already have as
a foundation with course one and two.

67
00:04:05,642 --> 00:04:06,834
So I look forward to seeing you in class.