Comments (4)
Alright I refactored my own code to only reassign graph data when there are topographical changes. For cosmetic line update I re-assign the link property accessors like linkColor
, linkWidth
, etc so that the graph will rerun those without reheating the simulation. Thanks for the help @vasturiano !
from 3d-force-graph.
@Blitzy thanks for reaching out.
The force simulation reheating is necessary in situations where the graph topology actually changed, so that it has the chance to find the new equilibrium in the nodes positions. But if you find the iterative motion of the nodes too distracting you can have them jump immediately to their final position by doing warmupTicks(50)
(adjust to taste) and cooldownTicks(0)
.
What's not clear in your example is why do you need to update the data structure if there's no actual topology changes in your graph? In other words, if nothing changed in the data, why call graphData
at all? This is causing the simulation to get reheated needlessly.
from 3d-force-graph.
That's a valid point and why I asked if I was using the feature in a way that was unintended. My plan moving forward is to treat it as you described, topographical changes.
Im storing a lot of state in the graph node and link data so updating it even if the topography didn't change was helpful. For instance, I'm changing the visual appearance of links based on custom properties I'm assigning to the link objects and updating the graph data seemed to be the most direct way to get the graph to update them.
from 3d-force-graph.
If you just need to do a cosmetic change, you don't need to reinvoke graphData
but just the part that you updating, f.e. linkColor
.
from 3d-force-graph.
Related Issues (20)
- Dynamic Particles do not appear for fixed Nodes HOT 1
- Issue with scene hyper-intensive illumination (probably after 1.73.0) HOT 2
- Shadow for links and nodes HOT 1
- How to add a loader to the node HOT 1
- Html rerendering on drag
- continuous scale node color
- 我画布上的所有节点都没有链接,点击节点之后,节点会向外扩散
- LOD for abnormally large graphs
- onNodeClick work error
- Default Settings for "charge" force not clear in documentation please help!!
- Labels for 'regions' / groups.
- text-nodes example stopped working HOT 2
- When nodeThreeObject is used, three-spritetext gives an error
- Arrow bad positionning when linkCurvature(0)
- The text-links example is broken by the latest three.js release r161 HOT 1
- Progressive WebXR HOT 2
- How to show a - 1M nodes HOT 3
- Showing labels front of node HOT 8
- Best way to add dynamic external object
- How to add custom lighting in nodes
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from 3d-force-graph.