Code Monkey home page Code Monkey logo

allnpmviz3d's Introduction

Big bang of npm

npm is the largest package manager for javascript. This visualization gives you a small spaceship to explore the universe from inside. Each dot is an npm package, each connection means there is a dependency between two packages. The position of each package is determined by force based layout.

Last time the npm was indexed May 10, 2015: 147,575 stars (packages),344,042 connections (dependencies).

User controls

W Move forward Up Rotate up
S Move backward Down Rotate down
A Move left Left Rotate left
D Move right Right Rotate right
Q Roll right R Fly up
E Roll left F Fly down
L Toggle links / Focus search

If you have a modern smartphone make sure to try this website there.

Video

youtube

Screenshots

Main cluster of dependencies Main cluster

Near asteroids field asteroids

Main cluster without links Main cluster - no links

Immediate dependents of lodash lodash dependents

Direct and indirect dependents of lodash lodash all dependents

Responsive design:

npm mobile

You can fly using device orientation API - just turn your phone around.

Available commands

Search box searches packages by name and accepts regular expressions. You can type just . - to match any symbol. Or ^\d+$ to match all packages with numbers as names.

Search box also accepts commands (must start with a colon):

  • :dependents PACKAGE_NAME - prints direct dependents of a PACKAGE_NAME
  • :dependencies PACKAGE_NAME - prints direct dependencies of a PACKAGE_NAME
  • :alldependents PACKAGE_NAME - prints both direct and indirect dependents of a PACKAGE_NAME
  • :alldependencies PACKAGE_NAME - prints both direct and indirect dependencies of a PACKAGE_NAME
  • :i love npm - this is supposed to be an easter egg. Since "users don't read", I'm putting it as a plain text in the readme file here. So you, my dear reader, can try it out yourself :).

How is this done?

With love of npm everything is possible. This project is built entirely on npm packages.

I'm using ngraph modules to precomupte 3D graph layout offline. angular + an makes a nice commonjs friendly pair. Angluar renders all UI components. three.js is used to render graphics.

Finally, gulp uses browserify to produce browser friendly bundle.

The entry point to an app is appController You can start your exploration there. It bootstraps all key components and provides messaging between them.

Building locally

Run this:

git clone https://github.com/anvaka/allnpmviz3d
cd allnpmviz3d
npm install
npm start

This will start local dev server, with live reload. You will also need data files. You can either download them from gh-pages or generate them yourself with allnpm module. After data is downloaded (labels.json, links.bin, positions.bin) make sure to place it into src/data folder.

I need your feedback

If you'd like to contribute - you are very much welcome. Even if it is something as small as fixing a typo or my grammar, please do not hesitate to submit a pull request!

allnpmviz3d's People

Contributors

anvaka avatar schizoduckie avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.