| .github | ||
| .husky | ||
| docs | ||
| src | ||
| .editorconfig | ||
| .eslintignore | ||
| .eslintrc | ||
| .gitignore | ||
| .npmrc | ||
| .prettierrc | ||
| bun-fix.d.ts | ||
| bun.lockb | ||
| esbuild.config.mjs | ||
| LICENSE | ||
| manifest.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| release.sh | ||
| styles.css | ||
| test.html | ||
| tsconfig.json | ||
| version-bump.mjs | ||
| versions.json | ||
Obsidian 3D Graph (Yomaru)
This is a fork from the original https://github.com/AlexW00/obsidian-3d-graph.
⚠️ This plugin is still under early development. Please open github issue if you have problems.
⚠️ I need open source contributors to help with the force! I have no idea why the built in center force is not enough to hold nodes together. 💩
A 3D Graph for Obsidian with dozen of features!
see the demo: https://www.youtube.com/watch?v=HnqXH6z4WrY
Installation
through BRAT
- install the BRAT plugin
- go to the plugin option, add beta plugin, copy and paste the link of this repo
- the plugin will automatically appear in the list of installed community plugins, enabled this plugin
Manual installation
- cd to
.obsidian/plugins - git clone this repo
cd obsidian-3d-graph && bun install && bun run build- there you go 🎉
Features
Global Graph
Use ribbon button or command to open the global graph.
You can do zooming (scroll you wheel), rotating (drag the scene) and panning (ctrl/cmd and drag the scene) in the graph.
⚠️ 3D graph has Performance issue that I don't know how to fix. You can set the max node number limit on the plugin setting. If the total node number on the graph beyond the limit, the graph will not be rendered to protect your computer from hanging.
Local Graph
⚠️ Local graph currently has some problem. I want to focus on global graph first and therefore I disable it.
In a note, you can run command Open local 3D graph to open a local graph. A local graph will only show nodes that connect to this nodes.
Filter Node on global graph
- filter by query
- filter attachment
- definition of attachment: any files which are not markdown files
- filter orphans
- definition of orphans: any node that has no links IN THE CURRENT GRAPH
Group and color nodes on global graph
you can use query to color nodes on a global graph
Label fade
When you are closer to the node, the label will appear. When you move away from the node, the node will fade away.
Changing display setting
You can change the following:
- Node size
- Node size also scale with degree of connection. The more links a node has, the bigger it is.
- Link thickness
- Link distance
- Node repulsion
- node hover color, node hover neighbour color, link hover color
- show file extension, show full path on label
- show center coordination
- show link arrow
- don't node move on drag
Focus on node
hold Ctrl/cmd and click on a node will fly and focus on a node. It is the perfect way to navigate on large graph.
Search and focus
You can search and focus on a node in the graph
Multiple selection and batch commands
hold shift and click on nodes to select multiple nodes. Then right click on one of the selected nodes to open commands. You can run batched commands on the selected nodes.
DAG mode
You can see DAG(Directed acyclic graph) orientation on a graph.
⚠️ Currently Dag mode has some issue, it cannot handle circular nodes and links but the plugin doesn't reflect that.
Feature roadmap
- Save Setting, you will be able to save setting for future use
- Algorithm optimization and code best practice enforcement (but not graph performance optimization because I don't want to dig deep in d3)
- Searching enhancement, now use a lot of hacky why to make obsidian built in search bar work but new mechanism will be introduced in the future.
- local graph option, currently local graph has not setting.
some other uncertain features are will sit in the github issues but I work on them base on ICE (Impact, confidence, effort)
Development
- cd to
.obsidian/plugins - git clone this repo
cd obsidian-3d-graph && bun install && bun run dev- there you go 🎉
for release, just run bun release
Note
- I have been developing this for free. I try to prioritize the functions before fanciness. I also prioritize my tasks base on ICE (Impact, Confidence, Effort).
- I have other on-going projects. I need open source helpers. Sponsorship will give me motivation and code contributors are very appreciate. I am open for discussion through https://cal.com/manlung.
- If you have an question or feature request, please open Github issues.
Say thank you
If you are enjoying this plugin then please support my work and enthusiasm by buying me a coffee on https://www.buymeacoffee.com/yomaru.
Acknowledgement
Just want to say thanks to those people. Without them, this repo will not be here.
- The original repo: https://github.com/AlexW00/obsidian-3d-graph
- The 3d force graph by @vasturiano: https://github.com/vasturiano/3d-force-graph
