Hacker News new | past | comments | ask | show | jobs | submit login
Software galaxies (anvaka.github.io)
747 points by matesz 73 days ago | hide | past | favorite | 114 comments



When you imagine that each dot is a program and that behind each of these dots, there is at least on person, it gives a very good appreciation of how complex each of these projects are. These are pretty big human architectures..


And it emphasizes the immense human effort involved in these projects.


Would be interesting to see one for the Linux Kernel. Each include an edge on the graph


Navigating the galaxies is frustratingly hard.

One finger touch moves forward, but it makes very hard to touch a point and see what it is. I keep selecting something past it, especially for large dots, which I'm curious to see what they are.

Rotating the device changes the direction but it's hard to point towards a specific star.

On the good side it's very nice to look at. I wish there would be something as fast as this for navigating real galaxies, with of course better controls.


Although I agree that navigation via device orientation makes some navigation aspects difficult, I also find it oddly fascinating. It's like my phone has become a window into another world.


I think I had the same feelings


It seemed hard at first, until I decided to get up and pan around (looking like a fool).

Imagine you're in a spaceship and pushing down accelerates it.

It was fascinating how quickly this perspective gave me a sense of orientation.


It was easy with a PC and keyboard.


Mobile was awful, but from the desktop W-A-S-D + the arrows make navigating pretty fun.


This looks very nice, but a 2D visualization might have been more practical. For example, the fact that the dot size represents the total number of dependents is obscured by the fact that the dot sizes are also a function of camera distance.


Reminds me of the 3D file browser user interface in Jurassic Park, which was an actual application. Looks cool but its not good to use (I mean the 3d file browser, not this software galaxies, which i found quite good).

3D interfaces rarely plan out, wonder if something like a vision pro or quest could make a 3D user interface work better than a 2D counterpart.



IIRC it was an SGI application - very cool but not terribly practical!


To be fair, it was all new back then and people were playing with ideas, so a 3d file browser seemed like a cool idea. A bit like the metal roller on the Paris Metro ticket machines https://www.youtube.com/watch?app=desktop&v=9SjBfRA3YzA


The discoverability on those things is definitely lacking. I think it took us five or so broken touch-screens before my wife noticed that you could use that to select menu options instead! I guess once you know it's fine though? Feels a bit dated compared to the typical touch & go card payments elsewhere in Europe now though.


I couldn't work it out for a good while, because it's the most unintuitive UI I have found on reasonably recent ticket machines. Once you know how to use it, it's ok.

ProTip: if you travel from London on a train, the buffet sells Paris Metro tickets.


Looks like it's "File System Navigator" or fsn (fusion)

https://web.archive.org/web/20160416092919/https://en.wikipe...

Since removed, but still mentioned here:

https://en.wikipedia.org/wiki/Graphical_user_interface#In_sc...


Can be seen here (@8.02): https://www.youtube.com/watch?v=1PP--lVTPCQ&t=482s

(A $36,000 Graphical Workstation from 1993 | SGI Indigo 2)


Yes, it was a SGI application. Probably used in the movie Hackers.

There was also a Doom file manager where you'd use BFG to nuke a directory. I only found one for Doom 3 but this also existed with original Doom. Nowadays, BFG is only used to nuke git repos.


Doom process managers where a thing for a while too, 20 years ago. Using the BFG on a crowded room of processes usually resulted in a system crash. Hunting down a stuck program and shooting it in E1M1 was pretty neat though. Your comment reminded me of playing with this in MacOS X a long time ago.

> https://www.cs.unm.edu/~dlchao/flake/doom/chi/chi.html


There was a bunch of "demo" applications bundled in Irix, some more some less useful, that were used to showcase the capabilities of the systems. File System Navigator was, afaik, one of them (similarly there was bundled "dogfight", a networked flight simulator game).


There's also Doom as an Interface for Process Management https://www.cs.unm.edu/~dlchao/flake/doom/chi/chi.html


In VR, there was a wave of that kind of thing (3D productivity apps, file browsers etc.) None really took off though as far as I can tell.


2D might be more practical if you were trying to make architectural decisions, but I feel the author's whimsical embrace of the starship metaphor made his/her project more interesting and fun. I've already seen a bunch of 2D code graphs.


What's used to compute distance?

I couldn't find any legend or description (mobile).

Edit Ah, noticed the bottom-right about: https://github.com/anvaka/pm/tree/master/about#software-gala...

Distance is seemingly arbitrary, decided by clustering algorithm.


It's weird, because there are (at least in the Rust "galaxy") several tiny, extremely distant constellations. I thought they were background decoration until I zoomed way in on them. Hard to image why they would be so distant if they're relevant.


I did notice it seems to have a preference for distancing well-connected clusters.

Maybe it's a layout algorithm preference for distancing "complexity" (i.e. groups of many items / connections) for improved readability?

Or that's representing single source-to-core clusters (e.g. many different things depend on a single library, which itself links back to core)?


I love these kind of things: - https://github.com/acaudwell/Gource : generate a beautiful and organic videos from git repositorios. - https://code.google.com/archive/p/codeswarm/ : similar to Gource . - https://skyline.github.com : it is dead, like as Atom .


Hell yeah. In our department we setup Gource to render out a video every midnight and pimped it out with a bunch of overlays and profile pics to show project progress and to visualize who worked on what. Shown endlessly looping on an iPad in front of the department, so no contributions are forgotten, especially the ones by interns who participated only a short while.


Cool. Do you have public (in a git repo or something) this setup for Gource?


+1 for providing the setup if you can. I love Gource.


just to be a bit astronomically nitpicky ... ;-)

they are more like star clusters than galaxies. Galaxies usually have a lot of mostly circular momentum with arms forming etc.

might be even the better marketing term "Software star clusters"

not to mention the widely accepted hypothesis that galaxies require dark matter to be held together... we don't want to dive into the analogy here for software, or do we? ;-)


But really it's the dark web that binds us all?


Not to be confused with Github stars and their social dynamics.


Seems unusable with unintuitive undiscoverable controls, standard touch screen controls like pinch-zoom and pan don't work on Firefox for Android. The about page says something about rotating your device, but that's a pretty bold assumption that the user wants to do that, or isn't currently on a subway/bus or otherwise in a fixed position like a stand, large tablet, or the user could have various disabilities.


My God! It's full of leftpads


is-even was the first package I have tried to search.


Wandering around in the javascript realm, there was some amusing stuff out at the borders.

Eject the warp core: https://i.imgur.com/h1ngR7A.png

Barren bare defaults: https://i.imgur.com/hLWXqER.png

Ideal atomic separation: https://i.imgur.com/3lmujgV.png

Rides his black horse upon the horizon: https://i.imgur.com/e6NnsDv.png

Not joke part, it's a neat visualization, just a bit confusing on the distribution. There were a few, like Microsoft being way off in their own world that were kind of obvious. Yet much of the distribution seemed like stuff that was related, but got put way off somewhere without any clear link. I ended up finding angularJS refs way out in the border.


As for Go, the dataset looks very-very old and outdated. At least 5 to 10 years old.


For Golang they used some exotic aggregator site, and it seems it went defunct years ago. I've tried clicking a few packages and was served casino ads.


Same for R


Am I the only one who is getting some sort of gambling site (go-search.org) when clicking on golang galaxy?


https://github.com/anvaka/pm/issues/44

Yep, seems like someone already opened an issue


That’s what I get too


Wonderful!

Want more.

Every blob displays its icon

Mouseover over displays much more stuff

Right-click: the world is your oyster

Ctrl-click: make a group, etc, much much more

Ultimately: create 3D bash/OS/


This is a UNIX System! I know this!


From the same author:

  * Related subreddits graph - https://anvaka.github.io/sayit/?query=linux
  * Map of reddit - https://anvaka.github.io/map-of-reddit/?x=18239&y=12514&z=32433.55559794627&v=2


Cool website, but I'm in a barbershop right now and can't wave my phone around like a madman to see the map. I'd love it if I could drag the sphere around with my finger on the screen.


Saw an odd little cluster in distance of the NPM galaxy and decided to explore more: https://i.imgur.com/PIXKU1A.png

It's strongcanary-a through strongcanary-z, and more.

They're packages designed to test strongly-connected components in a dependency graph.

https://www.npmjs.com/package/strongcanary-a

Looks like this tool passes the test! Cool that it was so identifiable from a distance


Wow, I love this. A long time ago I did some dependency graphs for gentoo linux packages [1] and also for a django project [2]. I put all the packages on a circle with dependencies being drawn as lines. This is so much cooler!

[1] https://www.thebacklog.net/2011/04/04/a-nice-picture-of-depe... [2] https://www.thebacklog.net/2012/10/13/visualizing-lernantas-...


I'm a bit confused by the Rubygems visualization. Many popular gems appear to be missing, and the role of Rails in the ecosystem is something you could miss if you weren't explicitly looking for it.

Cool viz, just not 100% clear what I'm looking at.


The graphics remind me very much of Netwars [1], although the controls of Netwars were a little bit better. However, this feels so good compared to some randomly generated universe, as you know that every star is something meaningful. And you can find actually helpful stuff: I just found logrus [2] a Go library for logging, which sounds cool :-D

1: https://en.wikipedia.org/wiki/NetWars

2: https://github.com/Sirupsen/logrus


super cool, but no jvm maven central?


Yeah that is what I came to ask here as well. Also no p2...

Edit: I see someone open an issue for it https://github.com/anvaka/pm/issues/2


Lots of star in the nuget galaxy, but there is not several package I worked on :(.


Impressive visualization, for sure. But a honest question: What are real use cases of such a representation? I mean, can (and will) this be used in a productive manner for solving what kind of problems?


The only use I can imagine is to use it to write a guide on the available software. You can pick from the image clusters and make them into chapters in your guide or something like.


It could be very effective in some cases


Seems like a very useful way to navigate on a large touchscreen.


no.


The gyroscope aiming on mobile is fantastic!

I've never seen a demo with such small latency and responsive to small movements. Even more impressive by being a web page and not a native web.


This is so cool! I’d love to see this kind of thing for nixpkgs


Interesting and very cool!

But since navigating around is not easy, would it be an idea to implement a game like controller that allows you to move around?

Current controls are not working so well.


seems to be done in the same way, but the parameters are off. aswd (camera angle) + arrow keys(panning) works nicely when zoomed out but very sensitive when zoomed in.


Maybe provide some insights on the main clusters identified? I think of this youtube video on Wikipedia Graph: https://www.youtube.com/watch?v=JheGL6uSF-4&ab_channel=adumb


This project reminds me of Gource. Both Gource and this are fun novelties to play with but this it from the project level to the registry level.

Would have liked to see vcpkg and Conan in here, too. I imagine zlib, OpenSSL, and a few other staples would be the center.


Couldn’t make the Elm galaxy show up on my phone. Anyone know what accounts for the disconnected islands? I know Elm has a fairly closed-off core development process that could be part of it, but can’t otherwise tell…


Perhaps it's the versioning? Like in the way that libraries for Elm 0.18 are often (mostly? always?) incompatible with 0.19.

(N.B. 0.19 has been the latest version for almost six years.)


The UX is garbage. It tracks my phone's motion, making it incredibly jittery (I guess I don't have the rock steady hands required?). And one finger starts an automatic zoom, while two fingers unzoom.



Off topic, I still couldn't find an easy or seamless way to search GitHub repos by keywords (repo name, coding language, etc) and have them order by most stars descending.


Weird you are right

I just tried this:

https://github.com/search?q=lang%3Arust&type=repositories&s=...

Filter by language to rust and then select sort by most stars, and the top repository has 249 stars...

Though if I add a filter for stars greater than 1000 the results look way better:

https://github.com/search?q=lang%3Arust+stars%3A%3E1000&type...


This is art! I wonder... What if the depth at which a package first appears depends on its release date? And what if each universe evolves in terms of package releases?


How is this data getting populated? I go to click into rust to see if I project I work on is there, and it isn't, even though its been on crates.io for years.


This is such a cool visualization. It's so interesting to see that Rust's embedded libraries are on a more separate, dense, group.


No maven central?

I imagine it would be pretty large, too.


How does this manage to plot so many points yet running pretty smoothly here on a low end computer browser?


I'd presume a WebGL particle shader


I imagine Gentoo would be extremely difficult to visualize because USE flags add a 4th spatial dimension...


Beautiful work


Where is CPAN, I don't see it.


Doing a Research paper Galaxies would also be interesting, especially in the domain of AI.


This is very hard to understand


Brew but not ports or pkgsrc


Incredible. The amount of effort that goes into each of those dots.


Couldn’t find the TensorFlow family in the Python galaxy…


Nuget has a lovely SampleDependency constellation.


Too bad there isn't one for quicklisp...


Links in the Go galaxy point to a casino page.


Fun. Needs haskell hackage :-)


I wrote up some details about adding Elm packages to this if you want to do the same for hackage! https://mattbrandly.com/every-elm-package/


I love anvaka's maps! See also reddit: https://anvaka.github.io/map-of-reddit/ and GitHub: https://anvaka.github.io/map-of-github/


I use his reddit graph all the time to find related subs. That one is 2d and imho is much more useful than a 3d visualization. Sad that it's probably not getting updated any longer due to reddit's apis no longer being available.


can we do one for the java + maven repository galaxy?


primitive.io has a VR browser for Java Maven, .Net, Node, Pip and PhP

Disclosure: founder posting here


I'm a bit disappointed that it has Homebrew, but not MacPorts, which is superior in my opinion.


SO f*ng cool!!!!


no nix pkgs, what's even the point


Add the dataset!


Is it just me, my extensions, or are the controls broken in Firefox?


I have difficulties too. "d" does nothing so I can only shift to the left.


might be you, I am on firefox and things work fine. Press ? key to show the controls if you don't see them.


this is crazyyyy


Holy crap, Bower still exists?


I think this is a 9 year old snapshot of Bower


Now imagine, if there was a timeline to show the evolution.


love this!


Shit that's cool.


It seems cool but is completely unusable on mobile. It still amaze me how today people do not think about designing mobile-first website.

The gap between devs and users is far from closed yet.


Assuming this was done in free time, for fun and posted here because it looks cool, why would you hold these expectations?

This is the kind of expectations you should have of a commercial product that you're paying for. Not of someone's random side project.


As you’ve said given it's a project done in their freetime I don’t have any expectations.

At the same time when I design a project I want to share to others (in my free-time too), I always think about making it working for the majority of the users (mobile in that case).


I do too, but usually not until I've first validated the idea is interesting to people. Not much sense in optimising the wrong thing.


It's for us geeks, not the majority :)


How users (who are non-devs) are planning to use this piece, I wonder. Also is there any well established web-native way to navigate in 3d space, that works on mobile? Personally, quake-style keyboard only navigation on my desktop works like a charm.




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

Search: