The project continues its slow development and iteration, and I have been learning a lot about this process. There are things that I have understood intellectually for some time, but now in the the thick of it, I truly “grok” those things. Such as there needs to be a balance between ideas & inspiration, and preparation & organization. That the importance of iteration cannot be understated. That discovery and serendipity lead to greater learning, and learning leads to discovery and serendipty. That it’s okay if you’re not coding 8 hours a day – what’s more important is that SOMETHING happen. Sometimes when I’m stuck on something or feeling uninspired or motivated, I do a little bit of learning – tutorials, research, and the like. That usually leads to getting the brain going so that in a few hours, I’m good to go and have a rush of productivity. Plus I learned something I can use.
This past week, I was iterating on the parallelogramme project, and had a very happy accident. I have been focused on replicating the Processing project I did last year, which I referenced in the last blog entry. I was running into a problem where the parallelograms neeeded to spawn completely surrounding the viewer, instead of in one place.
The problem I was running into was that, for some reason, when I tried to randomly distribute the parallelograms around the viewer, each one’s own rotation also changed. But the more I looked at it, the more I liked it.
This was much more visually exciting, and in VR would be even more so. So I took this moment of serendipity. It’s one of my favorite words and concepts, and it’s something I talk about in the first week of every class I teach. Even a perfectionist like Stanley Kubrick (my hero and prime inspiration), who ruled his set with an iron hand, knew and appreciated the value of serendipity. Good lesson.
Good lesson because immediately I wondered about letting each object’s rotation continue instead of freezing in that state. So I took it a step further, and knew I was onto something good.
It’s subtle, but it adds that much more visual interest and activity. I also added lighting and shadows. There will be more to come with that aspect, but right now I’m primarily focused on just getting it to work. I have a lot of ideas for how things will eventually look and even a progression from simple coloring to something more interesting. For example, I experimented with transparency:
I’m not completely sold on it, at least as it appears here, but again there’s a lot more going on visually.
Speaking of visually and learning new things, there’s an add-on to the software I use for developing this thing that lets me construct shaders and materials without a lot of programming. Shaders and materials are what tell an object how it responds to light – shiny or dull, reflective or not, transparent or opaque. Beyond that, shaders can actually move the points that make up a shape so you can do more sophisticated movement with it without rigging it and animating it. Again, learning this tool has inspired some new ideas about where I can go with this. Here’s what it looks like to construct a shader in this add-on:
There’s also a very interesting tool for simplifying the development process called GameFlow that offers a nice blend between visual scripting and an adherence to the component-based concept Unity uses. It’s pretty easy to learn compared to the other visual scripting tools out there, and while I haven’t decided if I’m going to use it for everything, it’s certainly fun to play with.
Rabbit holes, people. Rabbit holes.