Understanding Diffraction Grating

The first post in this series, The Nature of Light, introduced the dual nature of light, exhibiting behaviours which are typical of both waves and particles. In this part, we will see how those two aspects are both necessary for iridescence to arise.

You can find the complete series here:

A link to download the Unity project used in this series is also provided at the end of the page.

Continue reading

Improving the Rainbow – Part 2

In the previous part of this tutorial, Improving the Rainbow – Part 1, we have seen different techniques to reproduce the colours of the rainbow procedurally. Solving this problem efficiently will allow us to simulate physically based reflections with a much higher fidelity.

The purpose of this post is to introduce a novel approach that yields better results than any of the previous solutions, without using any branching.

You can find the complete series here:

A link to download the Unity project used in this series is also provided at the end of the page.

Continue reading

Improving the Rainbow – Part 1

Our journey to photorealism requires us to understand not only how light works, but also how we perceive colours. How many colours are in the rainbow? And why pink is not one of them? Those are some of the questions that this post will address.

You can find the complete series here:

A link to download the Unity project used in this series is also provided at the end of the page.

Continue reading

The Nature of Light

This is the first part of the tutorial on iridescence. This new series will explore the very nature of light, in order to understand and to replicate how material exhibits colourful reflections. The tutorial is oriented to Unity game developers, although the techniques described can be easily implemented in other languages, including Unreal and WebGL.vi

You can find the complete series here:

Continue reading

Understanding Geographical Coordinates

This series introduces the concept of trilateration. This technique can be applied to a wide range of problems, from indoor localisation to earthquake detection. This first post provides a general introduction to the concept of geographical coordinates, and how they can be effectively manipulated. The second post in the series, Positioning and Trilateration, will cover the actual techniques used to identify the position of an object given independent distance readings. Most trilateration tutorials require the measures from the sensors to be precise and consistent. The approach here presented, instead, is highly robust and can tolerate inaccurate readings.

Continue reading

Fractals 101

This new series of tutorials will explain what fractals are, why they are so important and what we can learn from them. This first lesson is a gentle introduction to the concept of iterated fractals and their dimension.

Mandelbrot_sequence_new

Since fractals naturally occur in nature, this series will be particularly interesting to all artists and game developers who want to create realistic outdoor environments.

Continue reading

Evolutionary Computation – Part 1

This series of tutorial is about evolutionary computation: what it is, how it works and how to implement it in your projects and games. At the end of this series you’ll be able to harness the power of evolution to find the solution to problems you have no idea how to solve. As a toy example, this tutorial will show how evolutionary computation can be used to teach a simple creature to walk. If you want to try the power of evolutionary computation directly in your browser, try Genetic Algorithm Walkers.

evolution

Continue reading

Exoplanetary Orrery V

An exoplanet is a planet that orbits another star other than the Sun; since 1988, approximately 2000 of them have been confirmed. This post, inspired by Ethan Kruse‘s Kepler Orrery IV, visualises and animates exoplanets, together with their habitable zones. The data come from the NASA Exoplanet Archive and it only includes the confirmed exoplanets with known orbits and temperature. You can find a complete list of all the exoplanets here.

Solar System

Before introducing the exoplanetary orreries, this is the inner part of our solar system.

Continue reading

Exoplanetary Orrery V

Animated orreries for the confirmed exoplanets from the NASA Exoplanet Archive. Main article here. Notes and units here. For licensing and enquires, contact email.

Notes

  • Distance: 195 pixels = 149597871 Km = 1 Astronomical Unit;
  • Planets: Confirmed planets from the NASA Exoplanet Archive (last update: December 2015); only planets with known orbital period, semi-axis major and radius are shown;
  • Orbits: 1 second = 3 day; orbits with unknown eccentricity in light grey. Initial positions are synchronised so that when they hit zero degrees, they transit in front of their stars, from the Earth’s perspective;
  • Planet size: 100 pixels = 69911 Km=1 Jupiter Radius (square root);
  • Temperature: planetary equilibrium temperature goes from 0K (−273.15°C) to 1500K (=1226.85°C); green area from 274K (0°C) to 313K (40°C);
  • Habitable zone: inner bound: \sqrt{L/1.1} Astronomical Units, outer bound: \sqrt{L/0.53} Astronomical Units (L is the star luminosity relative to the Sun); habitable zones are calculated taking into account only the first orbit;
  • Stars: for systems with multiple stars, only the primary one is visualised; stars are always assumed to be in the right focus of elliptical orbits;
  • Star size: 100 pixels = 696000 Km=1 Solar Radius (square root); stars with unknown radius are represented as 1 Solar Radius;
  • Stellar type:
  • Nomenclature:
    • Kepler: Kepler spacecraft by NASA;
    • KOIKepler Object of Interest via Kepler spacecraft;
    • PH: Planet Hunters via Kepler spacecraft;
    • WASP: Wide Angle Search for Planets;
    • CoRoTCOnvection ROtation and planetary Transits project by CNES & ESA;
    • HATHungarian Automated Telescope Network by Harvard-Smithsonian Center for Astrophysics;
    • WTSWFCAM Transit Survey;
    • HIP: High Accuracy Radial velocity Planet Searcher for the Northern hemisphere (HARPS-N).