Recent posts

Solving the Roots of a Cubic Polynomial

This article explains how to solve roots of a cubic polynomial in the complex plane. I use the depressed form of the cubic polynomial and Cardano’s formula. Additionally, I demonstrate an interactive demo which visualizes the roots of a cubic polynomial. There is a cubic polynomial which has...

Exploring Camera Models, Focusing on Distortion

This post delves into the specifics of various camera models, exploring the mathematical and geometric concepts used to represent how a camera captures the world. However, when capturing world scenes through a camera, images suffer from distortions due to the physical properties of the lens. T...

[Astrophotography] Calibrating Skywatcher’s Sky Adventurer

Preparing an equatorial mount for astrophotography requires a precise, multistep calibration process. The primary goal is to accurately align the mount’s rotational axis with the Earth’s axis of rotation. This guide outlines a four-step calibration process using Skywatcher’s Sky Adventurer. Fo...

Calibrating Cameras with Zhang’s Method

Camera calibration is a fundamental step in many computer vision applications, from 3D reconstruction to augmented reality. It involves estimating the intrinsic parameters of a camera (like focal length, principal point, and lens distortion) and its extrinsic parameters (rotation and translati...

[WebGL] Implementing Volume Rendering in GLSL

In the previous article, I explained how to render solid objects using the ray marching method. However, since the ray stops marching at the boundary of the object, it cannot successfully render translucent or transparent objects. This article delves into the ray marching method for a generali...