‘You can customize a ton of things if you can decipher the parameter system (which takes a lot of trial and error).’
I suppose this is the crux of my issue, I can see that it’s powerful capable and refined, but in the process of trying to parse the details of where I would go about modifying fundamental attributes of the functionality and styling, and how to even set up objects in the SODA api as it is,
I spent more time shifting through the details trying to learn it and it felt tedious every time. I would go and make my own widget from scratch that took maybe 20 minutes of FUN and INSPIRED enjoyable creative coding. I just think the fundamental way SODA was written was meant to be a “beautiful and functional ready to go approach” which is totally valid and great for many people, but lacks elegance and adaptability.
So what I have been doing is studying the elements of Cider (especially the interface builder, and their very simple and elegant class hierarchy) and Soda (great details and overall beautiful, but lost the ease of access and simplicity).
I believe the widget / GUI API should be as simple as the current CODEA parameter.type(“name”,min,max,init) setup, and allows extensibility and is customizable but easy to learn and remember. As clever as the whole SODA Init table idea is, in practice it is different enough from the standard Codea techniques that it feels out of place.
I find myself always reflecting on what I have made and re-factoring it toward the end of keeping my classes elegant and logical structure hierarchy to the best of my ability. Like the iPad itself, in practice it is a rectangle of glass you touch, The elegance and simplicity Keeps the focus on the experience provided within it,
ergonomic design is all about a feedback cycle of expectation, discovery, and intuition:
How do you expect it will respond to your action?
How closely did it match that expectation?
If there is a disparity between expectation and what happens, now we need to switch gears to a much more complex for process of learning, try something else, or completely shift to a hunt for answers as to how to achieve a desired result, look into manual or forum or internet and that kills the flow, so to avoid that giant recursive troubleshooting hunt routine we need to keep the structure of things simple and direct, and keep refining.
Intuition = preemptive unconscious pattern-recognition and the ability to understand something instinctively, without the need for conscious reasoning.
————-
My real goal is that I want a to create a UI design tool, as part of a large undertaking I am working toward. A combination of cross platform hardware and software tools, a modular multimedia Creative platform that has multitiple levels of abstraction and allows everyone from complete beginners to advanced gurus access to creating audio/visual interactive performances and installations (think max msp/ pure data meets Arduino and packaged in a way that provides easy access to low level elements for customizing hardware and software.
But the element in question is I want an open ended widget design tool for UI creation, and CODEA / GLSL is playing a role in rapid prototyping this structure.
Because this aspect of my goal overlaps with something I feel would be extremely useful to the CODEA community, I thought it pragmatic to offer my ideas into CODEA’s new UI library. I think they are on the right track from what I see in the new craft files, but it is very early on so it’s the perfect time for me to help if I am allowed. I will be available to put forth more direct effort toward this and provide my solutions on this thread in the next weeks, it is also part of the shadertoy / interactive shader format / glsl library I am working on. I have made a ton of useful stuff, I am just sorting the details before I cause confusion providing intermittent versions.
————
Soda doesn’t actually do that much in terms of built-in interactions it’s mainly the gesture library.
What’s soda doesn’t do, is make an easy to use framework for creating CODEA UI widgets to spec. I don’t want a cookie cutter slider or button, I want everyone to have access to levels of abstraction for their own GUI desires. The only two places I see it as a major room for improvement in Codea are providing gesture support and UI (and a more open ended low level solution for sound which I brought up in another thread)