I’m building an interactive experience which makes use of available weather data, much like the data services made available by the BOM or the OpenWeatherMap. This means I need to be able to load data from the web, parse it and then transform 3D geometry based on real world locations and the loaded weather data.
On the promotional page for the workshop they said “This course is for anyone that has an interest in applying the design process to solve complex problems. It’s likely you’ll have many transferable skills or experiences that will be put to use through the course of the day.” Cool. That’s exactly what I want to be able to do.
What did we do?
In the workshop we worked through the components that make up the practise of service design:
Discovery: gaining empathy and understanding the needs and pain points of users.
Ideation: Developing a range of ideas on how to develop a solution to meet the needs of all users.
Prototyping: Testing and iterating, including the customer experience, “front of house” interactions, and back of house dependencies.
Communication: Articulating the many facets of your offering in a concise way.
In this recipe, I learned how to use the loadStrings() function to load a text file from my hard drive into the String array. I also learned how to loop through the array in the draw() function and then use the number of characters in each line of text to calculate the diameter for the ellipse to be drawn.
In this recipe I learned how to use the Android DisplayMetrics class to determine general information about the display of the device used to run the sketch. While this is more of a diagnostic recipe than a creative one, I think it’s pretty useful way for finding out more about the capabilities of your device which could then inform the way you code your sketch. Nice.
In this recipe I learned how to run a sketch on my Android device. I did this by creating a sketch from the sample code, enabling USB debugging on my device and then selecting Run on device from the Sketch menu in Processing. Processing then compiled the code and then installed it on my device. Neat.
Unfortunately, I had some issues with running my sketch in the Android Emulator. Not a huge problem.
I also learned how much fun it can be to install an Android SDK and then try and get it to work properly with Processing. I had an issue with successfully running a sketch in the emulator and on a device using Processing 2.1.2 and the latest Android SDK.
Of course, I didn’t think that I was the only person who’d ever had this issue. So, I poked around on the Processing Forum and found a forum post with solutions to the Android java issue that was similar to my own. Downgrading Processing from 2.1.2 to 2.0.3 was the solution that worked for me. Awesome.
In this recipe I learned how to use the QUAD_STRIP and TRIANGLE_STRIP parameters inside the beginShape function to draw triangle or quad 3D geometry to screen. With some work, QUAD_STRIP and TRIANGLE_STRIP could be used to draw 3D grass and lawn geometry on screen for Sew, Grow and Mow as an alternative to pre-modelled geometry. Maybe.
This code draws the QUAD_STRIP and then rotates it around the centre of the screen. I particularly like how vertex (x1, y1, 0) and vertex(x2, y2, 50 + i) are used to add two vertices to the shapes with each iteration of the for loop.
In this recipe I learned how to use the ENABLE_DEPTH_TEST and the DISABLE_DEPTH_TEST parameter inside the hint function at the beginning and end of the draw function to to enable and disable the z buffer. This means the first black square intersects the coloured 3D cubes, while the second white square is drawn on top of the coloured 3D cubes. The DISABLE_DEPTH_TEST parameter would be useful if you wanted to display user interface elements such as buttons, banners or instructional text on top of the 3D environment.
My exploration of how we learn and how we design and develop stuff that helps us learn.