Skip to content

Instantly share code, notes, and snippets.

View GrantCuster's full-sized avatar

grant GrantCuster

View GitHub Profile
#!/usr/bin/python3
import numpy as np
import os
import ujson
from pprint import pprint as pp
from aylienapiclient import textapi
import time
aylien_client = textapi.Client(<id>, <key>)
@GrantCuster
GrantCuster / .block
Created March 20, 2017 22:33 — forked from pbeshai/.block
Animate thousands of points with canvas and D3
license: mit
height: 620
border: no
@GrantCuster
GrantCuster / index.html
Last active September 28, 2017 02:27
Three.js mouse-directed zoom
<!DOCTYPE html>
<meta charset="utf-8">
<canvas width="960" height="500"></canvas>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/87/three.min.js"></script>
<script src="https://d3js.org/d3.v4.min.js"></script>
<script>
var canvas = d3.select("canvas"),
context = canvas.node().getContext("2d"),
width = canvas.property("width"),
@GrantCuster
GrantCuster / README.md
Last active January 10, 2023 08:55
Three.js with D3-style Pan and Zoom

This example recreates the zoom and pan behavior from the Pan and Zoom II D3 example. I'm using Three.js in a 2D data-visualization project because I'm hoping its WebGL render can handle more points than canvas. I had a hard time finding an example that zoomed and panned like I'm used to, so I made this.

This stack overflow answer by WesleyJones and the getCurrentScale function from anvaka's three.map.controls code was essential to me actually getting this working.

The scroll zoom is currently inverted compared to the D3 example, I'd like to match it but apparently there's some easing happening in the D3 scroll behavior that slows things down as you zoom in. That makes it feel weird if I just invert the zoom.

If you have suggestions on how to make this better, message me on [Twitter](htt

@GrantCuster
GrantCuster / .block
Created October 3, 2017 15:23 — forked from mbostock/.block
Pan & Zoom II
license: gpl-3.0
@GrantCuster
GrantCuster / .block
Last active October 3, 2017 15:25 — forked from mbostock/.block
Pan & Zoom II
license: gpl-3.0
@GrantCuster
GrantCuster / .block
Last active October 3, 2017 15:33 — forked from mbostock/.block
Pan & Zoom I
license: gpl-3.0
.bg-white { background: #FFFFFF; }
.white { color: #FFFFFF; }
.bg-silver { background: #C0C0C0; }
.silver { color: #C0C0C0; }
.bg-hray { background: #808080; }
.hray { color: #808080; }
.bg-black { background: #000000; }
.black { color: #000000; }
.bg-red { background: #FF0000; }
.red { color: #FF0000; }
@GrantCuster
GrantCuster / inline-gatsby-footnotes.js
Created August 15, 2018 18:24
Create inline footnotes in markdown files in Gatsby.js
// Put in gatsby-browser.js
exports.onRouteUpdate = ({ location }) => {
setTimeout(function() {
let og_footnotes = document.querySelector('.footnotes')
if (og_footnotes) {
let footnotes = document.querySelectorAll('.footnotes ol li')
for (let i = 0; i < footnotes.length; i++) {
let f_content = footnotes[i]
let link = f_content.querySelector('a')
let href = link.getAttribute('href')
This file has been truncated, but you can view the full file.
[[[1927, 1933], [2545, 2542], [2672, 2670], [3312, 3304]], [[2251, 2249], [3090, 3095], [2477, 2473], [2978, 2984], [2980, 2986]], [[2642, 2643], [2823, 2829], [2208, 2206], [3030, 3032], [2825, 2829], [2574, 2575]], [[2592, 2602], [2815, 2819], [2269, 2266], [2762, 2766], [2481, 2480], [2215, 2219], [3095, 3100]], [[2359, 2347], [2941, 2946], [2732, 2731], [2670, 2669], [2571, 2561], [2427, 2415], [2754, 2752], [1890, 1893]], [[2307, 2306], [2550, 2553], [2549, 2552], [2521, 2526], [2258, 2256], [2454, 2452], [2516, 2520], [1766, 1765], [2903, 2903]], [[2209, 2213], [2501, 2506], [2501, 2504], [2476, 2476], [2145, 2147], [2425, 2427], [2502, 2503], [1706, 1710], [2813, 2815], [2408, 2411]], [[1993, 1999], [2228, 2233], [2323, 2330], [2462, 2460], [2039, 2044], [2217, 2220], [2322, 2329], [1670, 1673], [2584, 2584], [2216, 2220], [2350, 2355]], [[1989, 1984], [2352, 2346], [2370, 2369], [2301, 2292], [2070, 2064], [2302, 2292], [2302, 2290], [1564, 1561], [2464, 2465], [2155, 2151], [2277, 2268], [2300, 2291]