Alternatives to notebook layout?

What about having different ways of laying out reactive cells onto the page? The document-like layout of a notebook is fantastic, but in some cases I think it would be better to be able to displace cells freely in a 2D canvas, especially for UI-related cells. It could be something similar to visual programming environments such as VVVV or Nodebox, but without the explicit ports and connections, thanks to the reactive nature of Observable.

Let’s suppose you have many parameters to control, and a graphical representation that’s affected by all of them. Here is a simple example, but it’s easy to imagine something way bigger, with more controls and possibly more than one view. Currently, if I’m not wrong, you only have two options: either to scroll up and down whenever you alter a parameter to see how the graphics changed; or to create a more compact custom control that encompasses all the parameters. The first option is frustrating, while the second forces you to lose the modularity of cells and to encapsulate all parameter values in a single reactive object.

I think that such a use case would be better addressed by making it possible to freely lay out cells onto a 2D canvas, or by organizing them into a grid or a flex layout in a sort of dashboard. In my opinion, a future version of Observable featuring something like this would be a strong competitor in the field of visual programming environments and would also be very useful for prototyping dashboards.

What do you think?

4 Likes

In other topics the creators have mentioned their intent to make the reactivity graph explicit. This provides a great opportunity for managing the layout.

But even without that, I think something like a two-column format where you could represent left column function -> right column tests, or a tree where actual evaluation order is post-order (or maybe pre-order would be useful,w hy not?) has a ton of potential.

1 Like

elkjs is a heavy, but impressive graph layout library. If the reactivity graph data available for cells, then visualizing a graph like this (within any doc) could be pretty straightforward.

I think this is a critically valuable feature. being able to change the layout transforms this from JUST a notebook, to effectively a notebook AND a professional website/blog. I think it’s a major add.

Another amazing feature for geo would be to have half the screen function as a “map” area like in https://github.com/OpenGeoscience/geonotebook

Would love to contribute if I can!