Showing posts with label Learning. Show all posts
Showing posts with label Learning. Show all posts

Friday, March 01, 2024

Project 21 - Code Doodle - Swarm Doodle (Introduction)

It’s been a while since I’ve built anything interesting in the Artificial Intelligence field and with all of the neural network / transformer / LLM nonsense going on right now, I wanted to go back to one of the parts of AI I love, swarm systems.

If you haven’t heard the term before, boids are a generic model for the way organisms swarm together. Think fish in a school or birds in a flock. Each animal has a pretty simple set of things its trying to do but sometimes the overall effect can be breath taking; think of a huge murmuration of starlings at twilight. Boids -- think they fly like a boid -- are a way to model how bunch of simple agents can create a very complex behaviour, and how small tweaks to an agents behaviour can change the way a whole system performs (think starlings compared to geese). They're a very old addition to the world of artificial intelligence, and they've also been extreamly important to the world of film making.

Walter Baxter / A murmuration of starlings at Gretna / 

That being said, it’s been a very long time since since I’ve messed around with swarms (or boids) and I’m quite rusty and -- as I think is a theme here -- my vector math always seems to be just a touch insufficient. So, I’m going to write a short series as I go about putting my swarm system together.

I’m not going to go into all of the details right now, but I’m going to roughly follow Craig Reynolds Boid model. A lot of the details aren’t in the original paper and the content in the Wikipedia article is slightly out of line with my memory, so I’m going to bushwack from what I have to a hopefully working swarm system (rather than do more reading right now).

For this doodle, I’m taking my pre-existing moving agent code -- which I always wrote with an eye to doing a swarm system and expanding on it. To start I have little circles that try to balance being between the mouse and the middle of the screen. To build boids we’re going to have to expand that a little and add in a few more things to do.

I’m trying to stay close to Reynolds model for now, although there’s lots of fun to play with later on. I’m going to set up three “urges” for the boids, a separation urge -- “I’d like to not crash”, a heading (or alignment) urge -- “I want to go where everyone else is going” and a cohesion urge -- “I don’t want to be the only one out where I can get eaten”.

I’ve been working on this for a while -- and then not working on it for a while, so I’m starting to write with the intention of kicking myself into finishing the project. I’m about halfway done putting everything together -- which you'll notice when you look at the code in the repository, and I think I’ll write this up in four or five posts over the next few weeks. Once I get the basics done, I’m looking forward to all the other things I can play with.

Friday, January 20, 2023

Project 22 - Setting up my own about page

In light of certain online spaces failing, I've been thinking about better controlling my presence on the web.  I've had an about.me set up for a long while, but it seems like it's time to make sure that I have a point on the web which I own.


So if you were wondering who I am (and where else you can find me), I now keep a list of all that stuff at tj.kendon.ca.


I've owned my own domain at kendon.ca for a long time, so that makes it an easy start for building my own identity page. It's been pretty good for e-mails, but I haven't really done much else with it. I already had hosting set up, so I just had to put a page together there.


My webdev skills have grown fairly rusty -- and weren't that fancy to begin with. So this project gives me a place to play with some things and learn some new stuff. I've already spent a while playing with Hugo, which lead me to realize that CSS has changed a bit from what I knew before. I have a lot to learn, but I'm excited at the thought of getting to improve my page regularly.


For now, I've set up a pretty basic HTML page with an updated version of my CSS from my grad school page. I've organized into the two spheres I think about my life in, work and making stuff and there are links to my web presence.


I think my next two goals for the project are to set up SSL and smooth out the CSS.  I'm not totally thrilled with the style right now, so I may also rethink what it is I want that page to look like.



Sunday, November 10, 2019

Project 20 - That Code Click - Introduction

I like it when things click. When I’m programming I love that moment where things go together perfectly, and I love that moment in my own brain when a topic suddenly snaps into focus. I also like when I’m working with students and I see that moment for them.


This next project is my attempt to share that feeling and to help people learn about all of the stuff in computing that I think is really cool. It’s a chance to look at how things work, how things fit together, how things were designed and how those elegant moments in problem solving come to be.

I hope this is a chance for me to stretch my writing, teaching and communication skills. Additionally there are a lot of other technical skills I should pick up such as video production and things like that. It’ll also be a nice chance to chase down those topics I’m interested in, but never really have the time to manage while I’m teaching (and then forget about when I’m not teaching).

For the short term I’m going to simply create a few written articles and upload them here while I start building out the idea. In the longer term I’d like to see a blog and then maybe a fully dedicated website to host those articles and other supporting material.

For this first iteration of the project, I’m planning to write one article on “Counting in Binary on Your Fingers” a fun trick I always enjoy using to introduce binary numbers. I’d like to get that finished some time before November 29, including text and my own photos to illustrate. I'll also put together a list of future topics I'm thinking of. If you happen to have a great computing "click" you'd like to suggest, let me know.

Friday, July 25, 2014

Blog: Favourite YouTube Videos (Volume 60)

In this volume of my favourite YouTube videos, we get to enjoy music in boxes and music about boxes and learn together.

The Video Games I Played - February 2024

This is the second new monthly games post . I'm not feeling very settled in what anything means. The book posts have some basic stats...