Gravity / Bead Sort Demo

So I was bored and watching videos, and I discovered these wonderful videos about the sounds of sorting.

I was intrigued by how fast the Gravity sort seemed to be, and others in the comments were as well. It seems to be one of the fastest in the video at about 11 seconds.

Most of the other sorts take 20 seconds or more.

So I wanted to try to implement the sort in C# to see what it can do. The fruits of that labour are here:

https://github.com/eanbowman/GravityBeadSortDemo/

Not as pretty as the colour circle or the other visualizations in the sound of sorting project, but it does the trick.

Maybe some day in the distant future I’ll add visualizations, or you can fork the code and make some for yourself!

The relevant sort code is as follows:

public static void BeadSort(ref int[] data)
{
int i, j, max, sum;
byte[] beads;
for (i = 1, max = data[0]; i < data.Length; ++i) if (data[i] > max)
max = data[i];
beads = new byte[max * data.Length];
for (i = 0; i < data.Length; ++i)
for (j = 0; j < data[i]; ++j)
beads[i * max + j] = 1;
for (j = 0; j < max; ++j)
{
for (sum = i = 0; i < data.Length; ++i)
{
sum += beads[i * max + j];
beads[i * max + j] = 0;
}
for (i = data.Length - sum; i < data.Length; ++i)
beads[i * max + j] = 1;
}
for (i = 0; i < data.Length; ++i)
{
for (j = 0; j < max && Convert.ToBoolean(beads[i * max + j]); ++j);
data[i] = j;
}
}

Don’t Disable Nav Mesh Agent

So I’ve been working on the game logic to my little Raccoon Run experiment for a few months now in spurts of an hour here or a minute or two there.

I’ve been racking my brain as to why it was not functioning properly.

I made the mistake of building out most of the logic I thought was needed before really testing incrementally.

I couldn’t figure out why my raccoon game pieces were not moving forward after making their initial move.

It turns out that I was disabling the Nav Mesh Agent component on the raccoon game pieces.

This made it impossible for the game pieces to move after their initial move. Turning the component on again does not work, for whatever reason. It must be something to do with how it’s implemented. Regardless, you need to set isStopped to true instead.

Oops!

Live and learn!

Long Hiatus / New Project

Hi there! I’ve taken a long hiatus from posting here, but I’ve been working on the Ur clone game on and off for the past several months.

Recently Victoria helped me set up a pommodoro whiteboard so I can keep track of my progress. It’s worked somewhat, but September has a lot of social obligations and I haven’t kept up with it as much as I’d like.

I have also coded myself into a corner with the game logic. I’ve realized that it makes sense at this point to refactor a lot of the game logic code.

So when I do get time to do a pommodoro of work, I’ve been trying to clean up and finish that part.

I’m still missing some graphics and the menus and UI could use a lot of love, but I’m still working on it.

In the interim I’ve also bought myself a 3D printer. It’s the TronXY 100. A cheap and cheerful acrylic frame printer. You receive the parts for it flat-packed like Ikea furniture and assemble it yourself.

I’ve been quite liking it. At first it was pretty wonky. The screws for the Z axis (augers?) were too tight in the z-axis gear that meshes with them to carry the z-axis up and down. It was so tight that when I received it, the printer didn’t really work. I had to grease them with automotive grease to get it to even move.

Since then I’ve actually done tiny mods to increase the amount of printable space on the y-axis. I can print slightly larger things and the prints are more accurate now that I’ve tightened things down.

What remains is to maybe build a much sturdier box frame for it instead of the free sanding tower. The tower has some give and I think that manifests as waves in my prints.

All said, I’m as busy as I always am. Maybe I should take time more often to write down my thoughts here, as reading through them again really helps solidify my plans.

That’s all for now. Have a wonderful day!

3D Modelling of a Low Poly Rubbish Bin

I’m working on a little project and I’ve decided to share my process of modelling some of the assets. Hopefully it helps someone.

I’m working on a little project and I’ve decided to share my process of modelling some of the assets. Hopefully it helps someone.

I’ll have to figure out a way to screencast my keypresses. Somehow the default blender functionality for this isn’t working.

At 1458 tris, it will be able to convey enough visual information to be interpreted as a rubbish bin without using too much GPU power. This will be fairly small when it’s placed in the project.