Skip to content

prodirect manipulation proof of concept #7

@mjvesa

Description

@mjvesa

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions