-
Notifications
You must be signed in to change notification settings - Fork 0
Description
The idea of prodirect manipulation as I see it is that the output of a program can be manipulated on screen directly and the effects of those manipulations are recorded into the program. The idea can be found with more detail here https://ravichugh.github.io/sketch-n-sketch/
Similar things can be done in SL using the ideas used to convert RPN into infix form. In this case not only the expressions and statements would be transformed, but the positions in code would be recorded along with them. In the resulting code, there is always some point where things are output on the screen. In this PoC, each pixel on the screen would not only carry the pixel value, but also the code that produced the pixel value. Any variables in the code would also contain further expressions that can be expanded if need be.
In that code there will be some constants that alter the output. Those constants could then be annotated with events (mouse-x, mouse-y, wheel up and down) that affect it. When pressing down on a pixel, the events would then manipulate the first annotated values according to their annotations until the mouse button is released. Live recompiling and statelessness are implied.
This is a rather limited form of prodirect manipulation, but it should be doable. Would be interesting to see if this could be used to replace event based UI interaction.