depict
Ryven
depict | Ryven | |
---|---|---|
2 | 12 | |
26 | 3,593 | |
- | - | |
6.6 | 9.1 | |
12 months ago | 4 months ago | |
Rust | Python | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
depict
-
A CSS-Inspired Syntax for Flowcharts
One potential solution direction, which you can try out via my own incomplete drawing toy [1] is to treat punctuation characters like SP (“ “), COMMA (“,”), and SEMICOLON (“;”) as markers for the product operations of a family of monoids that allow you to specify more and more complicated sequences without requiring the typist to “move the cursor left” to add a matching character.
This way, simple lists can be specified via juxtaposition:
a b c
And then more complex lists
thing 1, thing 2, thing 3
and still more complex lists like
A complex thing; with data, and more data
can be specified in a way that is potentially still human-legible and easily editable.
Combined with ~instant feedback while typing and, ideally, a “brushing” system to allow selection of parts of the textual model via the linked drawing, I am hopeful that this can be solved resiliently, at least for the most common use cases.
(Part of why I am excited about OP’s work here though is that while I have done a fair bit in my own project on drawing a related kind of diagrams, I have myself only begun thinking about how to make the resulting drawings nicely stylable/themeable.)
[1] https://mstone.info/depict/ -> https://github.com/mstone/depict
-
Ask HN: Visualizing software designs, especially of large systems (if at all)?
You might find it helpful to distinguish between visualizing the design of the system being implemented by your software, visualizing protocols being implemented by your software, visualizing the design of the your software itself, and visualizing important implementation details at runtime, e.g. for debugging, profiling, and operations.
For visualizing system designs, you should take a look at STAMP, e.g., via “Engineering A Safer World” + the resources at mit.edu/psas + on YouTube.
(Multiple tools, both commercial and libre, exist and are being developed to make these diagrams, although for what it’s worth, I mostly hear about people making them using draw.io, Google Drawings, on physical paper/whiteboards, or occasionally with specialized tooling.
I have also recently published a project in this area, https://github.com/mstone/depict, which I believe is well on its way toward addressing some unmet needs here.)
For visualizing protocols, things like sequence diagrams, data flow diagrams, DRAKON flow charts, value stream maps, and occasional more specialized objects like CPSA “cryptographic protocol shapes” / strand space skeletons are where I start depending on the flavor of what’s needed.
For visualizing the design of implementations themselves, I have not yet seen anything that I feel obliged to recommend; rather, here, I suggest investing in adding illustrations to your existing documentation in whatever way is easiest for you to use to clarify whatever subtleties you need to clarify for your audience.
(Here I tend to look at things like ASCII-art, SQLite’s railroad diagrams (now made with pikchr, AIUI), and sequence diagrams, as mentioned by other commenters, as helpful examples to start with.)
Finally, for implementing debugging/profiling/operational illustrations, there is a such a rich set of examples to turn to — whether from the very specialized (custom process model video rendering pipelines in robotics) to TensorBoard for TensorFlow to general-purpose tools like browser performance debugging suites, flame charts, or Go’s built-in profile graphing tools - that rather than learn any particular such tools, I’d instead suggest trying to get comfortable with the building blocks underlying these systems, which include contemporary GUI/web apps, custom drawing and animation tools like SVG, pretty printers, and Grammar-of-Graphics systems like vega-lite.
(Note: although it may seem superficially extraneous to your question, the reason I also suggest thinking about debugging visualizations in this context is because IMO, to work, they ~necessarily encode a visual model of the design of your implementation since it is the design of the implementation that provides the vocabulary and relationships that have to be understood and navigated in order to successfully debug/optimize/monitor any given running instance of whatever system you are building.)
Ryven
-
Ask HN: Modern Day Equivalent to HyperCard?
I really wish Livecode hadn't pulled their opensource/Community Edition (and I'd be very glad for someone to do something with that code).
Gambas is something I keep wanting to try and seems promising.
I did one small app w/ Python and TKinter, but it was a dense wall of text/code when I was finished and not something I was interested in revisiting. I keep seeing suggestions that Python w/ QT support is supposed to be quite good.
One unlikely option is Google's Blockly (which I wish had a stand-alone desktop implementation which would make graphical programs), which has a nifty version implementing OpenSCAD:
https://www.blockscad3d.com/editor/
which I've used a fair bit. Moving on from there, there is: https://github.com/derkork/openscad-graph-editor which has the advantage of encompassing the entirety of OpenSCAD. It's also possible to wrap up Python using PythonSCAD.org
If you're willing to consider other node/line connection systems two promising options are:
https://ryven.org/
and
https://nodezator.com/
What sort of coding, on what sort of projects do you want to do?
-
Standardized, Python based Block Diagram File Format for Dynamic Modeling as an Open Source Alternative to Matlab and Simulink
There are general visual programming tools for python like ryven or PyFlow that should be able to run generic code, so in theory you can put SimuPy code in the blocks.
- Verse™: The first general purpose codeless development app - Beta available!!
-
Ask HN: Visualizing software designs, especially of large systems (if at all)?
"What does an algorithm look like?"
I'm an intensely visual person, but have never found a visual programming system which scales well --- the problem is, past a certain level of complexity one has to use modules, which then devolves the visual representation down to just a bunch named blocks.
That said, I'm using BlockSCAD:
https://www.blockscad3d.com/community/projects/1421975
to work up designs which I'm then putting into other tools.
Looking at GraphSCAD:
http://graphscad.blogspot.com
and there's also Ryven and pythonocc which I managed to get installed:
https://ryven.org
https://github.com/Tanneguydv/Pythonocc-nodes-for-Ryven
but I'd really like to see a tool for this sort of thing which made G-code.
- my list of self-hosted (dev) tools
- Ryven – Flow-based visual scripting for Python
-
PyFlow – a tool for visual and modular block programming in Python
Why this over https://ryven.org/ ?
-
PyFlow – Visual scripting framework for Python – NodeRED alternative?
Interesting, came across https://ryven.org/ recently which looks in the same domain.
Any practical use cases of either being used?
Huge fan of NodeRED, always thought the paradigm could be leveraged for other heavy workflow applications
-
Blender + Ryven; leveraging the power of node editors in Blender by building on top of an open Python-based framework
I'm developing Ryven (https://ryven.org), a python-based visual nodes editor/platform. I recently published a tiny prototype plugin for Ryven 3.1 inside Blender (https://github.com/leon-thomm/ryven-blender). As Ryven is Python-based and quite easy to use, and Blender already had success with an integrated nodes editor, I would like to find out whether based on Blender's Python API it'd be possible to develop a large, powerful, compatible, and easily extensible framework of nodes for Blender that run on Ryven.
-
Verse: Visual Scripting Tool for Python
This seems very similar to https://ryven.org/
What are some alternatives?
spekt8 - Visualize your Kubernetes cluster in real time
PyFlow - Visual scripting framework for python - https://wonderworks-software.github.io/PyFlow
ScrivanoForLinux - Scrivano is a notetaking application for handwritten notes.
ryvencore-qt - Qt frontend for ryvencore - Python library for building visual node editors
shotglass - Tools to visualize large code bases in different ways.
imgui-node-editor - Node Editor built using Dear ImGui
Pythonocc-nodes-for-Ryven - Pythonocc nodes for Ryven
baklavajs - Graph / node editor in the browser using VueJS
TypeScript-Call-Graph - CLI to generate an interactive graph of functions and calls from your TypeScript files
PyFlow - An open-source tool for visual and modular block programming in python
plurid - Explore Information as a 3D Structure
TheAlgorithms - All Algorithms implemented in Python