Published
Edited
Jun 21, 2018
8 forks
111 stars
Line-Sweep Ambient Occlusion with WebGPUSpring TrainingLine Sweep Ambient Occlusion in JavaScriptLine Sweep Terrain LightingSpeed Climbing World Record ProgressionWebGPU ShaderHydraulic Erosion SimulationHow Does Mapbox Raster Colorization Work?Arc Length of a Quadratic Bézier SplineMagnetic PendulumTracing Lamb Wave Modes in the Complex PlaneMissing Fundamental IllusionSliced Optimal TransportLine Integral ConvolutionShanks TransformationUeda's AttractorCubic basis vs. Hermite interpolationBicubic Texture Interpolation using Linear FilteringFactor-of-Two Lanczos Image ResamplingRendering the Aperiodic Monotileeqn [WIP]SDF Points with reglKnocking Down the Gates with our Friend JacobiFast Generalized Winding Numbers in 2DHTML+CSS Periodic Three-Body OrbitsClifford and de Jong AttractorsStrange Attractors on the GPU, Part 1: ImplementationStrange Attractors on the GPU, Part 2: Fun!Lawson's Klein BottleInteractive Multi-scale Turing PatternsComputing π with the Bailey-Borwein-Plouffe FormulaThe Double Pendulum MapMalkus WaterwheelRegister Allocation and the k-Coloring ProblemMultiscale Turing Patterns in WebGLSelecting the Right Opacity for 2D Point CloudsKuramoto-Sivashinsky Equation in 2DAdaptive Contouring in Fragment ShadersComplex function plotterGPU Voronoi Diagrams using the Jump Flooding AlgorithmBaker's MapHello, g9Dispersion in Water Surface WavesFake Transparency for 3D SurfacesUniformly Distributed Points on a SphereGPU BoidsGrouping Points with Principal Component Analysis
Domain Coloring for Complex Functions
Drawing indexed mesh data as screen-space normals without duplicating dataFinding Roots in the Complex PlanePeriodic Planar Three-Body Orbits2D (Non-physical) N-body Gravity with Poisson's EquationHalf-Precision Floating-Point, VisualizedIntegers in Single-Precision Floating-PointDomain Coloring with Adaptive ContouringInstanced WebGL CirclesDouble Compound Pendulums3D Reaction-DiffusionMathematical Easter Egg ColoringToiletpaperfullerenes and Charmin Nanotubes
Also listed in…
WebGL
WebGL
Insert cell
Insert cell
Insert cell
Insert cell
drawPlot3(domainColoringParameters)
Insert cell
drawPlot3 = plot3.createDrawFunction(`vec2 f (vec2 z) {
return cdiv(cmul(csqr(z) - vec2(1, 0), csqr(z - vec2(2, 1))), csqr(z) + vec2(2, 2));
}`)
Insert cell
Insert cell
Insert cell
drawPlot1 = plot1.createDrawFunction(`
vec2 f (vec2 z) {
return z;
}
`)
Insert cell
drawPlot1(domainColoringParameters)
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
drawPlot2 = plot2.createDrawFunction(`
uniform float n;
vec2 f (vec2 z) {
return cpow(z, n);
}
`)
Insert cell
drawPlot2(Object.assign({n}, domainColoringParameters))
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
drawPlot4 = plot4.createDrawFunction(`
uniform float t;
vec2 f (vec2 z) {
vec2 fz = C_ONE;
vec2 a0 = cexp(vec2(0.375, -0.125 * t));
fz = cmul(fz, z - cexp(vec2(0.0, t)));
fz = cdiv(fz, z - cexp(vec2(0.5, 0.5 * t)));
fz = cmul(fz, z - cexp(vec2(0.125, -0.625 * t)));
fz = cdiv(fz, z - cexp(vec2(0.25, -0.25 * t)));
fz = cmul(fz, csqr(z - a0));
return fz;
}
`)
Insert cell
drawPlot4(Object.assign({t: 6}, domainColoringParameters))
Insert cell
!paused && drawPlot4(Object.assign({t: (now / 1000) % 1000}, domainColoringParameters))
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
drawPlot5 = plot5.createDrawFunction(`
vec2 f (vec2 z) {
z /= 16.0;
return csin(cinv(z));
}
`)
Insert cell
drawPlot5(domainColoringParameters)
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more