Featured

On the New Meaning of Life: Part I

Every consciousness wants to maximize its chances of survival (passing on their information content). Hence, it uses a variety of tools to map its surroundings and formulate predictive models to minimize surprise.

Featured

Overcoming Lack of Motivation

10 Tips on Combatting Resistance I understand that compared to my previous, highly technical, posts, this will be a more general self-help type of article applicable beyond my domain of software development. I am no self-help guru, nor do I claim to be perfect at the tips I recommend, but nevertheless I have found some …

Featured

Computing the Sign of Discrete Distance Fields

Determining whether a point in space is inside/outside of a given shape depends entirely on the shape's topological properties. Shapes with holes and/or self-intersections do not have a mathematically guaranteed interior and exterior (by Jordan's curve theorem). However, with sufficiently fine voxel outline of a given polygonal mesh, we can enclose the approximate interior and flood-fill the remaining voxels to achieve sign computation of our distancie field.

Featured

The Fast Sweeping Algorithm

The distance function is a solution to a type of Eikonal equation. The fastest O(n) method for numerically solving Eikonal equations was introduced by H. Zhao in his 2005 paper called the Fast Sweeping Method.

Featured

Octree for Voxel Outlines of a Triangular Mesh

The advantage of octrees is that they can subdivide the surrounding space into self-similar cells. Starting with a bounding cube we can then produce cells that can be thought of as a subset of a regular grid.

Featured

AABB Tree

When a sampling point is located near some part of a mesh, it is utterly useless to compute distances to triangles that are "on the other side" of the mesh. One might think that the concept of "closeness" to some triangles of the mesh is inseparable from the distance we intend to compute, but it turns out that there is another set of approaches utilizing a "friend" of programmers who want to accelerate a process handling arbitrarily large amounts of data - a binary tree

Featured

Implementing Your Own Metaballs and Meta-Objects

An article on how to triangulate scalar fields using the Marching Cubes algorithm

Introduction to Computer Graphics

This post is the platform for posting materials for course "Introduction to Computer Graphics" for summer semester.

On the New Meaning of Life: Part II

A Possible Resolution of the Aforementioned and some Additional Philosophical Problems My previous post introduced a variety of philosophical premises for understanding consciousness and its formation from matter, the birth of morality, and the overall context we find ourselves in. Since the complexity of life is unbearable for virtually all of us, in this essay, …