PyCon, Let's make some noise !
Kousik Krishnan (~kousik) |
Have you wondered how games like GTA, Minecraft produce massive worlds dynamically that are chock full of details? No, it is not done manually by an army of designers but is rendered real-time using algorithms. This is called procedural generation and enables the game engine to populate the screen with trees, buildings, rolling clouds, etc. To do this, the algorithms need to generate random numbers a.k.a noise that have some nice properties. In this talk, we will look into these properties and noise generation algorithms that have given us blockbuster games, movies and even won an academy award. We will use these algorithms to generate interesting and diverse images in python and conclude with a discussion on the application of these algorithms in other areas like finance and data science.
- Generating random numbers using NumPy/random [3 mins]
- Is random too random? The need for smoothness [5 mins]
- Perlin Noise in 1/2/3 dimensions [7 mins]
- Demonstration in python [5 mins]
- Other Noises: Simplex and more [3 mins]
- Applications and demo of short video generated [2 mins]
Who is this talk for?
People curious about visual effects and how they are generated
Math folks interested in generating random functions
By attending the talk, the audience will be able to:
- Appreciate the math around visual effects
- Generate basic effects in python
- Be able to apply the underlying principle in the area of their interest
Sample images generated using the noise algorithms.
- Experience playing/watching graphic intense games/movies.
- Basic knowledge of python
- Basic knowledge of pseudo-random number generation
Introduced to python a decade ago, I am a quantitative analyst working in the financial services industry where I am responsible for developing models for financial prediction and risk management. I keep learning new math algorithms that have some application in computing. I came across the world of noise algorithms trying to generate random functions for financial models, ever since, I am hooked by procedural generation and its application in game design.