• Stars
    star
    225
  • Rank 177,187 (Top 4 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A general framework and library for exploring thousands of small multiples

Piling.js

A general framework and library for visual piling/stacking.


Docs NPM Version Build Status File Size Code Style Prettier Demos

Preview

Piling.js currently supports visual piling of images, matrices, and SVG out of the box, but can easily be customized with your own render.

Get Started

Install

npm install piling.js pixi.js

PixiJS is the underlying WebGL rendering engine. It's not pre-bundled in case your application needs to use PixiJS elsewhere.

Optionally, if you want to lay out piles by more than two attributes you have to install UMAP as follows.

npm install umap-js

Quick Start

Let's pile some natural images

import createPilingJs, { createImageRenderer } from 'piling.js';

// define your items
const items = [{ src: 'http://example.com/my-fancy-photo.png' }, ...];

// instantiate a matching the data type of your items
const itemRenderer = createImageRenderer();

const piling = createPilingJs(
  document.getElementById('demo'), // dom element in which piling.js will be rendered
  {
    // Mandatory: add the items and corresponding renderer
    items,
    itemRenderer,
    // Optional: configure the view specification
    columns: 4
  }
);

Et voilà 🎉

teaser-natural-images

Examples & Templates

Piling.js with a Visualization Library

Piling.js with an Application Framework

Development

Install

git clone https://github.com/flekschas/piling.js
cd piling.js
npm install

Start the Development Server

npm start

Cite Piling.js

@article{lekschas2021generic,
  author = {Fritz Lekschas and Xinyi Zhou and Wei Chen and Nils Gehlenborg and Benjamin Bach and Hanspeter Pfister},
  title = {A Generic Framework and Library for Exploration of Small Multiples through Interactive Piling},
  publisher = {IEEE},
  journal = {IEEE Transactions on Visualization and Computer Graphics},
  series = {InfoVis ’20},
  year = {2021},
  month = {2},
  day = {1},
  volume = {27},
  number = {2},
  pages = {358-368},
  doi = {10.1109/TVCG.2020.3028948},
}

More Repositories

1

svelte-simple-modal

A simple, small, and content-agnostic modal for Svelte v3 and v4
Svelte
422
star
2

jupyter-scatter

Interactive 2D scatter plot widget for Jupyter Lab and Notebook. Scales to millions of points!
Python
378
star
3

regl-scatterplot

Scalable WebGL-based scatter plot library build with Regl
JavaScript
192
star
4

simple-world-map

A simple SVG world map with ISO 3166-1 annotations
71
star
5

regl-line

Flat 2D and 3D line rending with Regl for WebGL
TypeScript
51
star
6

owl2neo4j

Convert OWL to labeled property graph and import into Neo4J
Java
45
star
7

sbb

Semantic Body Browser - a tool for graphically exploring an organism's body.
JavaScript
35
star
8

jupyter-scatter-tutorial

Jupyter Scatter Tutorial (that was first presented at SciPy '23)
Jupyter Notebook
20
star
9

d3-list-graph

D3 layout for a graph composed of adjacent lists of nodes
JavaScript
17
star
10

higlass-scalable-insets

Scalable Insets for HiGlass: a new technique for interactively exploring and navigating large numbers of annotated patterns in multiscale visual spaces such as gigapixel images, matrices, or maps.
Jupyter Notebook
16
star
11

hipiler

Visual exploration of large genome interaction matrices with interactive small multiples.
JavaScript
13
star
12

pub-sub

A tiny 0.8 KB pub-sub event library that supports cross-window messaging and async event broadcasting
TypeScript
12
star
13

enhancer-gene-vis

A tool for visualizing ABC enhancer-gene connections in the context of genetic variants.
TypeScript
12
star
14

utils

A very opinionated set of small handy utility functions
JavaScript
8
star
15

piling.js-react

Template for using piling.js in a React app
JavaScript
6
star
16

treemap

D3-driven AngularJS treemap app.
JavaScript
5
star
17

higlass-fancy

A collection of fancy HiGlass view configs
3
star
18

line-seg-intersect

Fast testing whether two line segments intersect
JavaScript
3
star
19

svelte-transitions-fade-scale

A custom transition function to fade and scale in at the same time.
JavaScript
3
star
20

spinner

CSS 3 animated spinner
CSS
2
star
21

peax-experiment

Perceived pattern similarity comparison user study with Peax
Jupyter Notebook
2
star
22

higlass-image

A collection of tracks for viewing image data in HiGlass
JavaScript
2
star
23

image-tiles-to-sqlite

Convert a directory of image tiles into a SQLite database
Python
2
star
24

higlass-jupyter

HiGlass Jupyter Notebook Extension
Jupyter Notebook
1
star
25

fetch-geojson-snippets

Small script that fetches and saved snippets of GeoJSON annotations
Python
1
star
26

graph-map

D3-based treemap visualization for graph-like polyhierarchical data.
JavaScript
1
star
27

apache-arrow-typescript

Apache Arrow TypeScript Test
TypeScript
1
star
28

with-raf

Request animation frame throttling
JavaScript
1
star
29

project-sbb

Project page for the Semantic Body Browser
HTML
1
star
30

flowtype

Rewrite of FlowType in ES6 which doesn't require jQuery
JavaScript
1
star
31

higlass-geojson

GeoJSON Track for HiGlass
JavaScript
1
star
32

peax-avocado

Avocado encoder model for Peax
Python
1
star
33

hipiler-server

[OUTDATED: Use HiGlass Server instead] The HiPiler Server
Python
1
star