latest posts

Scripting time-warp effects with Warpify

Warpify provides a simple CLI to warp and save videos. Simply launch the application with python warpify.py to get started. Alternatively, warpify also provides direct access to it’s inner functions for use in your own projects. A simple case could look like this: from warpify import SlitScan warp = SlitScan('path/to/file.avi') mask = warp.GenerateLinearMask(displacement=30, 'vertical') warp.Slice(mask) warp.Render('warped.avi', fps=60) Changelog: Warpify v0.9 is still in beta stages and the next update will have better error handling.

tagged with cinematography python post 1 of 9

Population Busts and Survival of the Most Reproductive

Simulating a complex process such as natural selection can be relatively simple to compute, with very few rules and a completely passive role in the evolution. The feature image shows a stable population of 130 after 2,700 generations. Each animal moves around their environment in search of food. If food is within their sense radius, the animal moves directly towards it; otherwise, they moves randomly. Every time step, they lose some of their health. If they can find and eat...

tagged with generative biological post 2 of 9

Simulating Erosion on Procedurally Generated Terrain

Creating procedural terrain from heghtmaps is easily done with classical noise generators and fractal noise, however making that terrain look realistic is often much harder. Depending on how many octaves you use, proceduarly generated terrain is either too smooth or too jagged to look realistic. Natural terrain has a combination of these features, with rocky mountains and flatter rolling plains. A leading cause of this is the natural erosion of the terrain over time, especially due to rivers and rainfall....

tagged with geography modeling post 3 of 9

Cellular Automaton in the DOM and ECA local-lay

What is a cellular automaton? A cellular automaton (CA) is an evolving, “living” system that forms complex and repetetive behavior from a few simple rules. Basically the entire world of a CA evolves every timestep, with each cell either surviving, dying, or coming to life depending on the state of the previous generation. A CA can really live in N-dimensional space, but the most commonly studied and emulated CAs live in 2D space–a grid. Each cell in this grid has...

tagged with conway life post 4 of 9

Random Noise Generation in Python with Numpy & Vectorization

After failing to find a succient and readable Perlin noise algorithm in Python, I decided to create my own. This goes over the differences between Perlin noise and random noise, as well as document the imporvements I’ve tried to make to my original algorithm with the power of vectorized functions. Using the script Simply run: import noise # Both functions output a square array of noisy values normalized from 0-255 noise = noise.Perlin(scale, resolution, seed) fractal_noise = noise.Octave(resolution, num_of_octaves, major_grid_scale,...

tagged with graphics vectorization post 5 of 9

Exploring Julia Set Fractals and QtPy GUI's

This script generates a Tkinter GUI to preview and render Julia set fractals. Quadratic Julia sets are generated by the expression where c is a constant. Sets whose value of c lies within the Mandlebrot set remain connected and are called Fatou sets, and other values of c form disconnected, interesting fractal patterns called Cantor sets or Fatou dust. Outputs from various presets in v1.1 native Changes This was my first attempt at creating a packaged GUI for any of...

tagged with math fractals GUI post 6 of 9

Fitting Experimental Data in Python with Minuit

Extracting a signal from a sea of background noise? Look no further. We have simulated data of electron/positron pair production . We know that our signal mass is in the vicinity of 155 GeV, and we also know that our resolution is limited to ±5 Gev. Therefore our signal probability density function (PDF) is a Gaussian distribution with , . Our raw data and our expected signal can be seen in figure \ref{signal}. Now we want to fit a background...

tagged with physics signal processing condensed matter labs post 7 of 9

Lasers and Lab Reports a.k.a. Playing with Polarizers

Optical rotation is a unique property of polarization in certain materials. Specific rotation refers to how much the plane of polarization rotates in solutions. By measuring the total optical rotation of a sucrose solution at various concentrations, one can make a linear fit to find the specific rotation of sucrose. It was found that sucrose has a specific rotation of , with the high uncertainty in the final measurement likely due systematic error. PACS numbers: 42.25.Ja, 42.25.Lc, 42.79.Ci Background The...

tagged with physics lasers labs post 8 of 9

Asymptotic Analysis in the Black-Scholes Model

The Black-Scholes model of evaluating call and put options presumes constant volatility, an assumption that has turned out to be incorrect. This paper discusses how to amend corrections to the model by finding approximations to the stochastic differential equations instead of solving them explicitly. To do this we will utilize asymptotic analysis to find a series for the corrections to the Black-Scholes model while maintaining invariance with respect to the stochasticity of the volatility. Not only is this asymptotic approach...

tagged with finance math complex analysis post 9 of 9