• Stars
    star
    597
  • Rank 72,571 (Top 2 %)
  • Language
    JavaScript
  • License
    Other
  • Created about 12 years ago
  • Updated about 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,593
star
2

latent-scope

A scientific instrument for investigating latent spaces
JavaScript
350
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
319
star
4

adventures_in_opencl

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

wwsd

working with spatial data - workshop materials
211
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

Bay-Area-d3

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

transit-datathon

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

d3mixtapes

collection of enjalot's d3 mixtape tutorials
9
star
19

dot-enter

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

hwr

Handwriting recognition tools for CJK Languages
Python
9
star
21

BGERTPS

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

migrants

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

block-similarity

experimenting with searching blocks by similarity
CoffeeScript
7
star
24

pinyin

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

EnjaCL

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

dipsy

pure svg tooltips with d3.js
JavaScript
7
star
27

d34github

d3 talk @ github
6
star
28

tributary.io

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

d3.flow

making it easy to visualize velocity
JavaScript
5
star
30

enja.org

my personal website
JavaScript
5
star
31

tremor

data collection app for manuscripts
CoffeeScript
5
star
32

checkin

simple checkin app for meetup rsvps
JavaScript
5
star
33

dotfiles

bash, vim
Vim Script
4
star
34

clynect

PyOpenCL + libfreenect + PyOpenGL playground
Python
4
star
35

SlickTable

Tabletop + SlickGrid
JavaScript
4
star
36

purpleair-history

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

earthquake

data for the swissnexSF earthquake resilience hackathon
4
star
38

pys3d

python stereo3d toolkit
Python
4
star
39

cypher

real-time code hip-hop
CoffeeScript
4
star
40

datacanvas

Data Canvas API explorer
JavaScript
4
star
41

homunculus

connect multiple Leap Motions with WebSockets
JavaScript
4
star
42

lildata

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

awsapp

Amazon Web Services backend for Django
Python
3
star
44

sparcscraps

scraper for sparcsf.org menu
Python
3
star
45

latent-drafting

fetching reddit data and embedding it
Jupyter Notebook
3
star
46

enjalot.github.com

HTML
3
star
47

traffic

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

blocksonblocks

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

mongo

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

sparse-matrix-zoo

zoo of spare matrices
CoffeeScript
2
star
51

racer-animate

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

datainsightsf

JavaScript
2
star
53

police-departments

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

derby-demo

simple demo app using derby
CoffeeScript
2
star
55

pyfers

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

nodecsv

simple examples using node-csv
JavaScript
2
star
57

onair

tributary on air
JavaScript
2
star
58

tribulations

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

d3surveys

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

enjapen

WiiMote python cocoa framework. Basic functionality
Python
2
star
61

derby-barchart

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

taxitrips

playing around with taxi data
JavaScript
1
star
63

kijani

kijani backend
JavaScript
1
star
64

guttmacher-scrape

scraping tables from Guttmacher Institute
HTML
1
star
65

buzzdata_client

BuzzData Ruby Client Library
Ruby
1
star
66

d3-charts-book

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

bitcatcher

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

playditt

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

masters-thesis

FSU DSC
Python
1
star
70

ofp

oakland food pantry registration app
JavaScript
1
star
71

gifclick

browser-based gif editing
JavaScript
1
star
72

talks

slides for talks
JavaScript
1
star
73

archon

interactive video tutorial system
JavaScript
1
star
74

react-hilbert-genome

A zoomable 2D map of the human genome
1
star