Date: Sun, 18 Jan 2015 08:25:57 -0800
From: Chaim Gingold
Subject: Re: Apparatus foundations
I really like Bret's idea. It also would make excellent use of the horizontal aspect ratio of displays (which column view doesn't do well). I would put a visual tick of some kind on data w code behind it, and a new disclosure widget that allows an object/row to disclose all its code properties at once below it. (The row gets additional subrows). That also provides a neat way to show formulas and outputs simultaneously, consistent with the non disclosed view.



On Jan 17, 2015, at 8:47 PM, Bret Victor wrote:

It's too early to tell, but one thing I'm worried about with the Card interface, at least when in columns above the canvas, is that there won't be enough space to see all this information.

I guess you could turn the cards on their sides, and use a Sketch-like horizontal arrangement, with children opening up vertically below.

<a.png>


Mousing over a property would show its definition, and you could edit it:

<b.png>

Selecting a child would open it up below the parent:

<c.png>


This has a spreadsheet-like "show all the data, but only show the code for one cell at a time" thing.  DDV did this too, and I'm not sure it's a good thing.  I really like the Apparatus way of showing all the definitions and all the values all the time; I think it's significantly better than having to play peek-a-boo with the code.  Maybe there's some way of folding the definitions into a horizontal/compact interface like this.

(FWIW, I don't necessarily feel like the columns will take up too much space.)



On Jan 17, 2015, at 2:29 PM, Toby Schachman wrote:

Here is the current state of the "prototypal inheritance" system in Apparatus.


<image.png>

The properties that are inherited have gray labels while the overridden ("has own") properties are in black. (I welcome alternative visual indicators for this if you have ideas...)

The interesting thing about the system, what makes it different than Self prototypes, is that structure is inherited as well. So for example if you make a group with children, then a clone of that group will inherit clones of the children. This isn't well illustrated in this video, but it works (the "Variables" etc are implemented as "children" behind the scenes).


I'm thinking that this next version will have an entity-component system for the "operations" that are applied to a shape. That is, a shape (say a circle) is an entity and it will have components (transforms, fills, strokes, shadows, etc) that change how it looks or behaves.

My goal is to support the same kind of multiple fills and shadows that Sketch supports.

<image.png>

It's too early to tell, but one thing I'm worried about with the Card interface, at least when in columns above the canvas, is that there won't be enough space to see all this information.

Additionally, Sketch and similar programs have specialized inspector interfaces for each component.

<image.png>

I'd like to balance the convenience and compactness of these interfaces with the genericness of my current "list of expressions" interface.

<image.png>

I'm hoping that adding scrubbable numbers, color pickers for color strings, checkboxes for booleans, and perhaps other widgets to make literals more appropriately manipulable will be enough to make the "code editor" feel appropriately non-code-y for most cases but still have the code editor capabilities when you need them.