Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: What are some great examples of bi-directional diagram/code projects?
5 points by thesurlydev on Dec 14, 2023 | hide | past | favorite | 10 comments
I've always been interested in this space and there seem to be few examples. Specifically, I'm looking for an example that shows how to use something like codemirror and a drag and drop interface. A change in one would be reflected in the other.


I've built a number of bidirectional editors, often with CodeMirror.

You could check out my bidirectional circuit design tool:

https://github.com/leomcelroy/svg-pcb

Paper on it here:

https://dl.acm.org/doi/abs/10.1145/3559400.3562004

Feel free to reach out if you have questions.


This is one of the best examples I've seen yet and you appear to have minimal dependencies. Kudos and thanks for sharing.



If start out in the middle with BNF grammar, can get drag/drop diagram/grammar highlighter for use in codemirror[0] or mess around with BNF linting [1][2][3][4].

[0] https://bnfc.digitalgrammars.com/

[1] : https://dl.acm.org/doi/10.1145/3278186.3278193

[2] : https://www.researchgate.net/figure/Overview-of-Grammarinato...

[3] bullwinkle : https://github.com/sylvainhalle/Bullwinkle

[4] : https://news.ycombinator.com/item?id=30822544


See Ravi Chugh's Sketch-n-Sketch work: http://ravichugh.github.io/sketch-n-sketch/

You might find it useful to look at the papers that cite the paper: https://scholar.google.com/scholar?cites=2233351225886461130...


dbdesigner : https://dbdiagram.io/home

puredata : Pure Data is an open source visual programming environment ( https://puredata.info/ / https://sourceforge.net/projects/pure-data/ ) projects build using puredata : https://puredata.info/exhibition

ofelia : graphics via openframeworks : https://github.com/cuinjune/Ofelia

list of other examples : https://en.wikipedia.org/wiki/Visual_programming_language


I should have mentioned it in my OP but another great example I've seen is KittyCAD[1]

[1] https://github.com/KittyCAD/modeling-app/blob/main/README.md


I am interested in tools of this type as well. One I know of is OPM: https://en.wikipedia.org/wiki/Object_Process_Methodology


constructive bidirectional programming[a]: treesitter[0] used with emacs[1] neovim[2] python[2.2]

programming language boomerang, "A bidirectional programming language for ad-hoc, textual data"[b];

more traditional use in neural networks[c]

xsugar for dual syntax xml language[d]

piet-q exotic language interpretation (vs. program/application)[e] and/or q-code usage/application[f][g]

can have fun with coding in c in way that 2nd program can be extrapolated from gcc ast syntax tree[3]

scratch[4] bit simpler, but gis-piet[5] bit bigger.

Hitchhicker's guide to the galaxy keeps it pretty small/simple with '42'; which means really have to fully expand/uncompress/unwind everything to get anything done.

---

[a] https://www.youtube.com/watch?v=jy-dpzi8neQ

[0] https://tree-sitter.github.io/tree-sitter/

[1] https://www.masteringemacs.org/article/how-to-get-started-tr...

[2] https://github.com/nvim-treesitter/nvim-treesitter

[2.2] : https://github.com/tree-sitter/py-tree-sitter / https://github.com/tree-sitter/tree-sitter-python

---

[b] https://www.seas.upenn.edu/~harmony/

[c] : https://github.com/bigaidream-projects/bidirectional

[d] : https://www.brics.dk/xsugar/

[e] : https://esolangs.org/wiki/Piet-Q

[f] : https://stable-diffusion-art.com/qr-code/

[g] : https://artvizual.com/featured/interactive-qr-code-art-exper... / https://www.hongkiat.com/blog/qr-code-artworks/

---

[3] : http://icps.u-strasbg.fr/~pop/gcc-ast.html / https://stackoverflow.com/questions/54162940/understanding-f...

[4] : https://scratch.mit.edu/

[5] : https://dl.acm.org/doi/abs/10.1145/1317331.1317345


Thanks for all the examples!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: