Public
Edited
Oct 29, 2023
2 forks
4 stars
Insert cell
Insert cell
Insert cell
Insert cell
graphDiv = html`<div id="3d-graph" width="600" height="600"></div>`
Insert cell
Insert cell
Insert cell
ForceGraph3D = require('3d-force-graph')
Insert cell
THREE = import("three@0.158.0")
Insert cell
UnrealBloomPass = (await import("three@0.158.0/examples/jsm/postprocessing/UnrealBloomPass.js")).UnrealBloomPass
Insert cell
Insert cell
numberOfPoints = 500
Insert cell
data = {
let data = {
nodes: [...Array(numberOfPoints).keys()].map(i => ({ id: i })),
links: [...Array(numberOfPoints).keys()]
.filter(id => id)
.map(id => ({
source: id,
target: Math.round(Math.random() * (id-1))
}))
}

return data
}
Insert cell
Insert cell
Graph = ForceGraph3D()(document.getElementById('3d-graph'))
.backgroundColor('#000003')
.graphData(data)
.nodeLabel('id')
.enableNodeDrag(false)
Insert cell
Insert cell
bloomPass = {
const bloomPass = new UnrealBloomPass()
bloomPass.strength = 2
bloomPass.radius = 1

return bloomPass
}
Insert cell
Graph.postProcessingComposer().addPass(bloomPass)
Insert cell
// If you want to run from a .html file

// <!DOCTYPE html>
// <html>

// <head>
// <meta charset="UTF-8">
// <meta name="viewport" content="width=device-width, initial-scale=1.0">
// <title>WebGL Data Visualization</title>

// <style>
// body { margin: 0; }
// canvas { display: block; }
// </style>

// <script src="https://unpkg.com/3d-force-graph"></script>
// </head>

// <body>
// <div id="3d-graph"></div>

// <script type="importmap">{ "imports": { "three": "https://unpkg.com/three/build/three.module.js" }}</script>
// <script type="module">
// import { UnrealBloomPass } from 'https://unpkg.com/three/examples/jsm/postprocessing/UnrealBloomPass.js'

// const Graph = ForceGraph3D()
// (document.getElementById('3d-graph'))
// .backgroundColor('#000003')
// .jsonUrl('https://raw.githubusercontent.com/vasturiano/3d-force-graph/master/example/datasets/miserables.json')
// .nodeLabel('id')
// .enableNodeDrag(false)
// //.nodeAutoColorBy('group')

// // Add glow effect with three.js postprocessing
// const bloomPass = new UnrealBloomPass()
// bloomPass.strength = 1
// bloomPass.radius = 0.8
// Graph.postProcessingComposer().addPass(bloomPass)

// // camera orbit
// let angle = 0
// const distance = 700
// </script>
// </body>

// </html>



Insert cell

One platform to build and deploy the best data apps

Experiment and prototype by building visualizations in live JavaScript notebooks. Collaborate with your team and decide which concepts to build out.
Use Observable Framework to build data apps locally. Use data loaders to build in any language or library, including Python, SQL, and R.
Seamlessly deploy to Observable. Test before you ship, use automatic deploy-on-commit, and ensure your projects are always up-to-date.
Learn more