Just designed and 3D printed a flexible (but firm) insole for my rollerskates. Took 8 hours to print each because it's TPU, but it's basically perfect. As for why, there's a metal part in the cuff that bruises my ankle, and I've got a little too much toe room.

not serious 

he should probably change his name to linux torvalds so i don't confuse him with the tech tips guy

Eye (w/contact) photo 

Having a very "let's try things" kind of bored day. This is definitely an improvement over my first and second attempts. Need a waterline eyeliner and a new eyeliner (it's coming out very thin)

Selfie (no eye contact) 

No face, because hella uncomf, but liked how I looked so...

Also, immediately attempted waxing after this. Worth it... But... Maybe some numbing cream next time? 😭 Got like 1/2 way through just one leg, lol

I TRIED TO FIT IN BUT I COULDN'T (I do better with the animals), 8x10, multimedia on canvas panel. This one will need an open frame (one without glass). It's in the shop: brokentoyland.com/forsale.htm
#art #blackandwhite #outsiderart #nobrow #itried

Long GameDev ramblings 

(Apologies for the typos, wrote this in the shower 😅😭)

Show thread

Long GameDev ramblings 

The building blocks I used in the end was, not ideal (*3), but good enough for the use case. Internally the conveyor is represented as a ring buffer, the front representing the item closest to the end of the conveyor belt. When a resource is inserted the tick it was inserted on is recorded. We can then compare that stored tick to the current tick to determine how far it's travelled, and then we use the index of the resource to limit the distance, which allows resources to queue up at a blockage instead of just ghosting through each other. For a 2^32-1 length conveyor it can be updated in just 20ns on my machine (23 on the tiny laptop)

*1 - Circular loops are the worst. That is all. This could also be resolved by making the resource processing graph non-looping, since any such looping in the machines would therefore always lock up.

*2 - I just choose not to worry about this, for now. The issue with starved inputs/saturated outputs is unlikely to be noticed if I'm consistent. However ordering of both inputs and outputs does require some special attention since different construction orders could behave differently.

*3 - Currently the ring buffer is on the heap, uses a lot of memory and requires a bunch of irritating ring buffer management overhead. I've also made a stack version for conveyors of <16 length, which updates in 12ns, but has some issues. Be fastest I've gotten takes the short stack based one and changes it to use SSE bit shifts, from memory that was pushing 6-8ns but still had the same issues. I'll be exploring these more though since my system allows multiple conveyor implementations to coexist.

*Bonus - I also attempted some aggressive multithreading, but whatever synchronisation primitives are being used internally are extremely expensive. I saw gains around 2ns per item across 6+ threads, each processing batches of 1,000,000 conveyors.

Show thread

Long GameDev ramblings 

Ok. Finally. post.

I've been playing around with the Bevy game engine in rust. Bevy is a little rough around the edges, but improves daily. I truely believe it's one of the brightest and most promising gems in terms of modern game engines. But that's enough gushing

Started my first project up. Factory building game. What does a factory building game need? Conveyor belts. Given the nature of bevy as a data-oriented engine and the performance demands of factory games needing to process hundreds of thousands of items, I decided to take a more algorithmic approach.

We can represent a factory as a graph structure, the nodes being machines and the conveyor belts forming relationships between nodes. At first I attempted to determine a solution that would analyse the graph to determine the consumption rates of resources entering the graph and the production rates of resources leaving the graph (ie. Enter storage, dead-ends). This proved too difficult for my brain because of needing to resolve circular loops (*1) and managing updates to this network.

My second attempted introduced a limitation, transmission of a resource via conveyor belt is not instant. This effectively eliminates both problems by dissolving the need to build an actual graph. Instead, all I needed to worry about was a list of machines and a list of 1-to-1 connections. This does however introduce ordering issues, for example if I update machines and then conveyors then a machine might receive a required input too late for it to produce a new output or the order of I/O may affect processing (*2).

In implementing this system I went through a variety of implementations and representations. The ideal conveyor belt would require no mutation of data to advance it, occupy contiguous memory without escaping to the heap, and be small.

=== Continued in reply ===

Bird Site, Politics, Transphobia 

Really starting to recognise the bird site as a significant source of anguish in my life. Constant trending of transphobia & right wing disinformation campaigns, and I just can't look away because it wells up so much anxiety in me and makes me feel powerless.

Trying to only keep it around for making artist commissions now. This is definitely my new home, y'all are amazing.

YouTube Music Link 

Oh siiiick, didn't notice but My Chem released a new song and its great:

Guess I'm going to be binging MCR for the next couple weeks

Hey again! Been busy, but I have some more free time to post.
Here are some more #PETSCII #PixelArt pieces I made - they are all mockups of text mode #C64 games.
First is The Chaos Engine, second is Prey 2017 (as a dungeon crawler), third is Hades as an isometric roguelike, and last is Pokémon.
One thing I find interesting about PETSCII is drawing the line between what is readable or not, what works symbolically speaking or not, and how I can build meaning with what is quite blocky.

New desk fully operational. Just need to vaccum my room and buy some conduit for the horrors you can see just under the desk.

Also just recently started again on my factory game project, should have words to say about that later!

Show older

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!