depict
codebase-visualizer-action
depict | codebase-visualizer-action | |
---|---|---|
2 | 11 | |
26 | 61 | |
- | - | |
6.6 | 0.0 | |
12 months ago | over 1 year ago | |
Rust | ||
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.)
codebase-visualizer-action
-
Treemaps Are Awesome!
Nice post - treemaps are great!
My friend and I made a codebase visualisation tool (https://www.codeatlas.dev/gallery) that's based on Voronoi treemaps, maybe of interest as an illustration of the aesthetics with a non-rectangular layout!
We've opted for zooming through double-clicks as the main method of navigating the map, because in deep codebases, the individual cells quickly get too small to accurately target with the cursor as shown in the key-path label approach!
If anyone's interested, this is also available as a Github Action to generate the treemap during CI: https://github.com/codeatlasHQ/codebase-visualizer-action
-
Gource – Animate your Git history
If you find this type of codebase visualisation useful, you might want to checkout codeatlas.dev and its Github Action (https://github.com/codeatlasHQ/codebase-visualizer-action). It doesn't animate the repo over time like gource (yet), but instead aims to give a beautiful interactive visual snapshot of a repo at a particular point in time. It also lets you zoom in on specific aspects like recent commit activity, programming language and hopefully in the future test coverage.
E.g. see here for a visualisation of the pytorch codebase we did a while ago: https://codeatlas.dev/gallery/pytorch/pytorch
(disclaimer: I'm the author)
-
Show HN: Git Heat Map – a tool for visualising Git repo activity for each file
If you think this is useful, you might also like codeatlas.dev and its Github Action (https://github.com/codeatlasHQ/codebase-visualizer-action). It currently does not support per-contributor activity, but we put a lot of effort into making the diagrams beautiful to look at and the basic approach of using treemaps for visualisation seems very similar. In fact, could be cool to collaborate on this, DM me if interested!
https://codeatlas.dev
-
Ask HN: Those making $0/month or less on side projects – Show and tell
https://codeatlas.dev - codebase visualisation tool
Takes your git repo and generates a beautiful visual representation of the code. Sort of an alternative navigation tool (in addition to IDEs) for large codebases. Can also run it as part of CI with our Github Action (https://github.com/codeatlasHQ/codebase-visualizer-action).
We made this because grokking complex software projects is really difficult and we've found that a visual overview of what's in a codebase can be quite helpful to get started.
E.g. checkout https://codeatlas.dev/gallery/kubernetes/kubernetes for the generated visualisation of the Kubernetes Github repo!
Currently making -10$/year to pay for the domain :D We slowed down active development after our initial attempts at dissemination didn't really go anywhere (bragging about side projects on the internet, ugh), but I'm still really keen on getting some feedback on whether this is actually useful to anyone else!
Note: The site works somewhat on mobile, but is much better on desktop!
Also, funny there's a post like this again, just like https://news.ycombinator.com/item?id=34531989 yesterday.
-
Ask HN: What have you created that deserves a second chance on HN?
https://codeatlas.dev - codebase visualisation tool
It takes your git repo and generates a beautiful visual representation of the actual code that's in it. Sort of an alternative navigation tool (in addition to IDEs) for large codebases. You can run codeatlas as part of your CI with our Github Action (https://github.com/codeatlasHQ/codebase-visualizer-action).
We made this because grokking complex software projects is really difficult and we've found that a visual overview of what's in a codebase can be quite helpful to get started.
E.g. checkout https://codeatlas.dev/gallery/kubernetes/kubernetes for the generated visualisation of the Kubernetes Github repo!
We slowed down active development after our initial attempts at dissemination didn't really go anywhere (bragging about side projects on the internet, ugh), but would still love feedback on whether this is possibly useful to anyone else!
Note: The site works somewhat on mobile, but is much better on desktop!
- Show HN: Codeatlas – Visualize your codebases during CI
-
Ask HN: Why aren't code diagram generating tools more common?
I've already mentioned this on the other thread (https://news.ycombinator.com/item?id=31569646), but my friend and I have been working on [https://www.codeatlas.dev](https://www.codeatlas.dev/) as a sideproject - it's a tool for creating pretty (2D!) visualisations of codebases, while providing additional insights via overlays (e.g. commit density, programming language or other results from static analysis like dead code/test coverage/etc.). For example here's the Kubernetes codebase visualised using codeatlas: [https://www.codeatlas.dev/repo/kubernetes/kubernetes](https:....
At the moment, codeatlas is just the static gallery, but we're only a few weekends away from releasing a Github action that deploys this diagram on github pages for your own repos - if you're interested, feel free to watch this repo: https://github.com/codeatlasHQ/codebase-visualizer-action
OP, how close is this to what you had in mind in your question?
-
Ask HN: Visualizing software designs, especially of large systems (if at all)?
My friend and I have been working on https://www.codeatlas.dev in our spare time, which is a tool that creates pretty (2D!) visualisations of codebases, while providing additional insights via overlays (e.g. commit density, programming language). For example here's the Kubernetes codebase visualised using codeatlas: https://www.codeatlas.dev/repo/kubernetes/kubernetes.
At the moment, codeatlas is only a static gallery, but we're currently about 1-2 weekends away from releasing a Github action that deploys this diagram on github pages for your own repos - if you're interested, feel free to watch this repo: https://github.com/codeatlasHQ/codebase-visualizer-action
What are some alternatives?
spekt8 - Visualize your Kubernetes cluster in real time
ScrivanoForLinux - Scrivano is a notetaking application for handwritten notes.
TypeScript-Call-Graph - CLI to generate an interactive graph of functions and calls from your TypeScript files
shotglass - Tools to visualize large code bases in different ways.
jtree - Build your own language using Tree Notation.
Pythonocc-nodes-for-Ryven - Pythonocc nodes for Ryven
scipipe - Robust, flexible and resource-efficient pipelines using Go and the commandline
dbcview - Quickly visualize senders and receivers in a DBC
plurid - Explore Information as a 3D Structure
atomic - Chat with and teach your calendar to solve your scheduling & time problems