RSSAmplifier

Blog

Evan Kiefl

ekiefl.github.ioRSS feed ↗9 posts

Latest posts

Northern Mongolia: a journey into the Taiga

Day 1: The black market The text of a nearby ad caught my eye as we waited at the baggage carousel. It was written in two scripts, and to my surprise, neither of them used the Latin alphabet. I could have at least learned the Mongolian phrase for “thank you”, I thought to myself. We grabbed our bags and found the exit. Amongst the people waiting in arrivals, I saw someone holding a sign that said…

Pooltool is alive and well

It’s been a while It’s been almost 2 years since my last update on pooltool. Usually that’s an indication that the project is dead, but I’m here doing CPR. In fact, despite the radio silence, I’ve been working on pooltool alongside what has been an eventful 2 years with finishing my PhD, starting a new job, moving countries, yada, yada, yada. During that time I could never find the energy to give…

Pooltool just underwent a massive graphics overhaul

Backstory In the last post I turned pooltool from a code-based simulation into a 3D-rendered interactive game. In this post I extend this direction of the project by transitioning from primitive cartoon graphics to something a bit more realistic. Sitting down to write this post has made me realize just how far down the rabbit hole I am. When I first started pooltool, I never even expected it to be…

Pooltool is now an open source billiards video game rendered in 3D

Goal In the last post I implemented a prototype that visualizes shots with pygame . But my plans are much more ambitious than visualizing shots on a pixel-art table. My goal is to turn this simulation into an interactive, 3D game/tool . That’s what this post is about. My credentials for making a game None. Game engine selection If I was a game developer, I would have written this in C# or C++,…

Creating a billiards simulator: the transition from equations to code

Outline In the first and second posts of this series, I discussed ad nauseam the physics and algorithmic theory behind pool simulation. With this all now behind me, it’s time to take this theory to the streets . The skeleton This project started with 2 main modules: engine.py and physics.py . The rationale for this design was to separate the physics from the objects that the physics acts on…

Classifying dog barks for my dog-sitting software

Intro Overview This post details the step-by-step process of creating an audio classifier that tracks and responds to the behavior of my girlfriend’s dogs while we are gone. The resulting data is distilled into an interactive interface such as the one shown here. [ Click for interactive plot ] Where I left off In the first post of this series, I made a virtual dog-sitter that detects audio events,…

The algorithmic theory behind pool/billiards simulation

Intro What is a pool simulator? In the last post I discussed the physics for all the different phenomena in pool and outlined equations of motion for each scenario. Yet there is still a critical missing piece: how and when should these equations be applied? For instance, I have equations to resolve the collision between two balls, but how do I know which two balls collided and when? A pool…

Creating a virtual dog sitter with live audio processing

I recently moved in with my girlfriend (Kourtney) who has a 6-month old puppy named Maple. She’s a sweet girl (the puppy), however she was born in the COVID era, and that comes with some behavioral challenges. The biggest problem is that she’s developed an unrealistic assumption that she can be with us 100% of the time. And when that unrealistic expectation is challenged by us leaving the…

The physics of pool/billiards

This post is the first of many in my journey to make a realistic pool/billiards simulator called pooltool . Before jumping into code, I have to trudge through the theory of both (a) the physics of pool, and (b) the algorithms for evolving a pool shot. The physics of pool is what is covered in this post , and algorithms for evolving a pool shot covered in the second post . Both of these will…