BIT-101
Bill Gates touched my MacBook Pro
Lots going on this past month. I’ve been lax in writing about it, largely because writing long form content has been tough, one-handed.
My last update was about my shoulder surgery. This has been going quite well. I’m just wrapping up week four now and the overall level of pain has been far, far less than I could have expected. I found I didn’t really need the heavy pain killers at all. Mostly got by with ibuprofen and ice. And after a week or so I started only taking that as needed.
I won’t subject this to you directly, but if you’re interested in an internal shot of my shoulder mid-surgery click below. I find it fascinating.
Warning! Internal surgery photo.
Not being able to move my arm 23+ hours a day has started to make it pretty stiff. I started physical therapy a week and a half ago. While that’s helping range of motion, the combo of the two is making the shoulder a little painful on some days. But less than one week left in the sling! Honestly, a little nervous to take it off. As annoying as it is, it’s also been a bit of a security blanket. How can I be trusted to use my own arm without something protecting it?
I’m sure I’ll be fine.
Last month I wrote a lot about my wire
library https://github.com/bit101/wire. I’ve had a lot of fun creating daily animations for 41 straight days and posting them on https://artfromcode.com . This past week I decided I needed to take a little bit of a break from the daily posts to explore some other ideas, but you’ll surely see more wire
pieces in the future.
There are two neat updates to wire
. One is the ability to load and save models I’ve created and to load in existing 3rd party point cloud models. Currently in terms of 3rd party models it only loads .xyz
files. These were originally created for modeling molecules. It’s a simple text format where each line is an x, y, z vertex, with an optional element name, and some optional metadata at the top, so parsing it was fairly easy. Although it’s not a super common format, there are on-line converters that will take 3d models in many other formats and save them down to .xyz
files. I considered building something to save models in .xyz
format, but decided to create my own format which includes both points and segments. This is how objects are represented in wire
. So you can save and load from that format. There’s also the .obj
format which, although it can be way more complex, can be reduced to saving points and edges. This would work, and maybe I’ll look into that someday.
The other addition to wire
is a new strange attractor library, lures
- https://github.com/bit101/lures. Lures… attractors… yeah. This is a super lightweight library. It’s really just a collection of 2d and 3d strange attractor formulas with a mechanism for setting properties and iterating through them to create a series of 2d or 3d points. It doesn’t do any rendering at all, just generates the numbers. But wire
can now generate a model from a lure formula and make a point cloud with as many points as you specify. You’ll see a lot of examples of that in the https://artfromcode.com entries in the past several weeks.
This is one of the reasons I wanted to take a break from daily animations. I’ll do a whole post on this, but this is an idea that I’ve been thinking of for a long time and finally decided to sit down and create it. It 100% scratches an itch and I’ve added it to my creative workflow and love it. More to come, but if you want a bit more info… https://github.com/bit101/isv
I restarted my exploration into creating music or at least soundscapes to go along with longer creative coding videos. Again using SuperCollider. I bought a little shiny thing that I’ve been eyeing for a long time - a Midi Fighter Twister. I think this will also be worthy of an entire post, along with the library I created for interfacing with it from SuperCollider.
But essentially, it’s a box with 16 midi knobs in a 4x4 arrangement. But it is amazingly customizable. Each knob can spin infinitely in any direction, so there is no set minimum and maximum orientation. The value for each knob is indicated by a series of white LEDs around the knob. This means that you can dynamically set the value of a knob. The knobs are also push switches and are configurable in four banks, so it’s really like having 64 knobs and 64 buttons. In fact, you can set it up so that pushing and turning acts as a separate control, so you could have 128 knobs. And there are 6 configurable buttons on the sides. And… well yeah, I’ll make another whole post about this.
I spent a few days figuring out exactly how to interface with this thing in SuperCollider and wound up making my own library: https://github.com/bit101/mft_sc that lets you access just about all the features through a single object. This has also been really fun. Though I admit I kind of abandoned this over the past few days working on isv
.
Eventually there should be some sounds to listen to. As much as I am fine with vomiting out a million images or animations, I’m extremely shy about my musical creations.
I guess that’s about it. Three new repos, each of which I’m pretty excited about. A couple more blog posts to write in the coming days. And a million more ideas floating around in my head. I can’t complain.
Comments? Best way to shout at me is on Mastodon