• Stars
    star
    598
  • Rank 74,853 (Top 2 %)
  • Language
    JavaScript
  • License
    Other
  • Created over 12 years ago
  • Updated over 7 years ago

Reviews

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

Repository Details

rapid prototyping with d3.js

Tributary

![Gitter](https://badges.gitter.im/Join Chat.svg)

Tributary allows you to share live-editable code snippets. These snippets will most likely use d3.js and allow a user to play with code in a very responsive way.

Tributary is innovation on principle, taking the excellent work of Gabriel Florit which was in turn inspired by Bret Victor's genius and making it sharable.

Tributary is a labor of love by Ian '@enjalot' Johnson and EJ '@mrejfox' Fox.

Usage:

Start typing into the code editor and watch your code come to life! If you want to save your work you can click the fork button and it will save into a gist. The url in your browser will update to something like: http://tributary.io/inlet/2958568

where the number: 2958568 is the gist id (you can see it here: https://gist.github.com/2958568 )

Development:

On the backend tributary only depends on node and mongodb: To deploy locally run

git clone https://github.com/enjalot/tributary
cd ./tributary
npm install
node server.js

If you want to have github authentication working you will need to setup a github app ( https://github.com/settings/applications ) and fill out the settings.js (see example-settings.js) The github app should have the following settings:
full URL: http://localhost:8888
callback URL: http://localhost:8888/github-authenticated

Right now you will also need to setup an imgur app and set the authentication details in settings.js as well

Frontend JS src file compilation with make to static requires node.js, uglify-js and browserify

npm install

You need to compile the frontend code and templates using make:

make

You can check the Makefile to see how it's done with uglify and handlebars. there is also a watch.sh bash script which will recompile the frontend code when any files change.

To run the server you need to modify your /etc/hosts file and add

127.0.0.1 sandbox.localhost

this is because tributary uses a separate subdomain to execute unsafe code in an iframe.

Some 3rd party libraries are minified and catted together for convenience. The result is found in /static/3rdparty.js To see what those are and how they are bundled look at this repository: http://github.com/enjalot/3rdparty

Reserved properties of the tributary object: tributary.initialize
tributary.init
tributary.run
tributary.g
tributary.ctx
tributary.t
tributary.dt
tributary.loop
tributary.loop_type
tributary.autoinit
tributary.pause
tributary.bv
tributary.nclones
tributary.clone_opacity
tributary.duration
tributary.ease
tributary.reverse
tributary.render

Usage as a node module

Contexts

I'm using latest CodeMirror from git (updating every-so often)
I have customized the JSHINT options in addons/lint/javascript-lint.js to be:

{
  asi: true,
  laxcomma: true,
  laxbreak: true,
  loopfunc: true,
  smarttabs: true,
  sub: true
}

TODO:

Editor UI:

  • re-enable vim and emacs mode (add ui for those selections somewhere)
  • re-enable local storage backups per editor (need it so you can load code back but not execute it)

File UI:

  • open file from disk (file dialog)

  • edit filename

  • delete files

  • Embedding example (simpler UI, assemble from fewer pieces)

  • Make BV button work for any of the renders (not just svg)

Contexts

  • enable number scrubbing for text mode (csv and tsv files)

More Repositories

1

algovis

collection of projects and links about algorithm visualization
1,632
star
2

latent-scope

A scientific instrument for investigating latent spaces
Jupyter Notebook
517
star
3

blockbuilder

Create, fork and edit d3.js code snippets for use with bl.ocks.org right in the browser, no terminal required.
JavaScript
324
star
4

adventures_in_opencl

A tutorial series for learning OpenCL
C++
285
star
5

wwsd

working with spatial data - workshop materials
212
star
6

cmdrslog

chrome extension that takes automatic screenshots for a given url
JavaScript
110
star
7

bart

data pertaining to BART
JavaScript
79
star
8

Inlet

Bret Victor inspired slider & color picker plugin for CodeMirror
JavaScript
74
star
9

EnjaParticles

Particle System expirementation Sandbox: OpenCL/OpenGL on PC and Android OpenGL in C with JNI
C++
66
star
10

adventures_in_d3

tutorials and code samples for the d3.js library
JavaScript
55
star
11

intro-d3

workshop materials for introduction to d3.js
JavaScript
44
star
12

served

Create simple HTTP servers for any directory, no command line necessary
JavaScript
34
star
13

visxai-pattern-language

Towards a pattern language for visualizing AI
25
star
14

blockbuilder-search-index

download and process d3.js blocks for further indexing and visualization
CoffeeScript
24
star
15

blockbuilder-search

API endpoint and UI for blockbuilder search page
JavaScript
20
star
16

latent-sae

Training code for Sparse Autoencoders on Embedding models
Jupyter Notebook
17
star
17

Bay-Area-d3

A collection of resources for learning d3.js
JavaScript
16
star
18

transit-datathon

notes and resources from the transit datathon 10/11+10/28 in SF
Python
11
star
19

d3mixtapes

collection of enjalot's d3 mixtape tutorials
9
star
20

dot-enter

d3.js mixtape of freestyle tributary performances
JavaScript
9
star
21

hwr

Handwriting recognition tools for CJK Languages
Python
9
star
22

fineweb-modal

Using modal.com to process FineWeb-edu data
Jupyter Notebook
9
star
23

BGERTPS

Blender modified to put the Real-Time Particle System library in the Game Engine
C
8
star
24

migrants

data from themigrantsfiles.com in a d3 friendly format
HTML
7
star
25

block-similarity

experimenting with searching blocks by similarity
CoffeeScript
7
star
26

pinyin

a visual explanation of the pinyin typing system
JavaScript
7
star
27

EnjaCL

C++ Wrappers for OpenCL with a focus on Particles
C++
7
star
28

dipsy

pure svg tooltips with d3.js
JavaScript
7
star
29

d34github

d3 talk @ github
6
star
30

tributary.io

real-time app powered by tributary and derby
CSS
6
star
31

d3.flow

making it easy to visualize velocity
JavaScript
5
star
32

enja.org

my personal website
JavaScript
5
star
33

tremor

data collection app for manuscripts
CoffeeScript
5
star
34

checkin

simple checkin app for meetup rsvps
JavaScript
5
star
35

dotfiles

bash, vim
Vim Script
4
star
36

clynect

PyOpenCL + libfreenect + PyOpenGL playground
Python
4
star
37

SlickTable

Tabletop + SlickGrid
JavaScript
4
star
38

earthquake

data for the swissnexSF earthquake resilience hackathon
4
star
39

purpleair-history

scripts for downloading and collating historical data from PurpleAir
JavaScript
4
star
40

pys3d

python stereo3d toolkit
Python
4
star
41

cypher

real-time code hip-hop
CoffeeScript
4
star
42

datacanvas

Data Canvas API explorer
JavaScript
4
star
43

homunculus

connect multiple Leap Motions with WebSockets
JavaScript
4
star
44

lildata

a browser based tool for exploring lil' data
3
star
45

awsapp

Amazon Web Services backend for Django
Python
3
star
46

sparcscraps

scraper for sparcsf.org menu
Python
3
star
47

latent-drafting

fetching reddit data and embedding it
Jupyter Notebook
3
star
48

enjalot.github.com

HTML
3
star
49

police-departments

a machine-readable list of state and local police departments in the U.S.
2
star
50

traffic

visualization exploring traffic on the Bay Bridge during July 2013 BART strike
JavaScript
2
star
51

blocksonblocks

an exploration of all d3.js blocks
HTML
2
star
52

datainsightsf

JavaScript
2
star
53

derby-demo

simple demo app using derby
CoffeeScript
2
star
54

latent-scope-observable-examples

Observable Framework examples for Latent Scope
JavaScript
2
star
55

pyfers

python cyphers, i.e. examples of wrapping in python
Python
2
star
56

mongo

An interactive explanation of the MongoDB Aggregation Pipeine
JavaScript
2
star
57

nodecsv

simple examples using node-csv
JavaScript
2
star
58

sparse-matrix-zoo

zoo of spare matrices
CoffeeScript
2
star
59

onair

tributary on air
JavaScript
2
star
60

racer-animate

easily transition values that change in a Racer model
JavaScript
2
star
61

d3surveys

surveys about and for the d3.js community
CoffeeScript
2
star
62

tribulations

no pain no gain. removing the friction from prototyping
2
star
63

enjapen

WiiMote python cocoa framework. Basic functionality
Python
2
star
64

guttmacher-scrape

scraping tables from Guttmacher Institute
HTML
1
star
65

derby-barchart

simple deom of using a d3 reusable chart with derby
JavaScript
1
star
66

taxitrips

playing around with taxi data
JavaScript
1
star
67

kijani

kijani backend
JavaScript
1
star
68

buzzdata_client

BuzzData Ruby Client Library
Ruby
1
star
69

d3-charts-book

Cookbook about building charts with D3.js using the reusable API
1
star
70

masters-thesis

FSU DSC
Python
1
star
71

bitcatcher

node server + scripts for collecting and sharing bitcoin market data
1
star
72

ofp

oakland food pantry registration app
JavaScript
1
star
73

playditt

Simple Blender based game based on reddit.com
1
star
74

gifclick

browser-based gif editing
JavaScript
1
star
75

talks

slides for talks
JavaScript
1
star
76

archon

interactive video tutorial system
JavaScript
1
star
77

react-hilbert-genome

A zoomable 2D map of the human genome
1
star