Skip to content

Commit 15fb432

Browse files
update report
1 parent dc5afdb commit 15fb432

File tree

1 file changed

+8
-8
lines changed
  • news/posts/2025-08-28-DoodleBUGS-Introduction

1 file changed

+8
-8
lines changed

news/posts/2025-08-28-DoodleBUGS-Introduction/index.qmd

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ DoodleBUGS/ # Vite + Vue 3 app (UI editor)
114114

115115
**Frontend architecture (Vue 3 + Cytoscape.js)**
116116

117-
- Core graph state is managed in Vue; Cytoscape.js handles layout, hit-testing, and interaction semantics (including compound nodes for plates) [@cytoscapejs].
117+
- Core graph state is managed in Vue; [Cytoscape.js](https://js.cytoscape.org/) handles layout, hit-testing, and interaction semantics (including compound nodes for plates) [@cytoscapejs].
118118
- Code generation lives in `DoodleBUGS/src/composables/useBugsCodeGenerator.ts` and maps `GraphNode`/`GraphEdge` to BUGS:
119119
- Kahn topological sort for definition order
120120
- Plate-aware recursion for `for (...) { ... }` blocks
@@ -132,17 +132,17 @@ DoodleBUGS/ # Vite + Vue 3 app (UI editor)
132132
- Timeout: worker process is killed if exceeding `timeout_s`.
133133
- Cleanup: `safe_rmdir()` retries with GC to avoid EBUSY on Windows.
134134

135-
## Why Vue (not React)
135+
## Why Vue (not React)?
136136

137137
The proposal planned React; we chose Vue 3 after evaluating the graph layer and developer velocity for this app.
138138

139-
- Tried Konva (canvas) for custom graph editing: powerful drawing primitives, but required bespoke graph semantics (hit testing, edge routing, compound nodes) that Cytoscape.js provides out of the box.
139+
- Tried Konva (canvas) for custom graph editing: powerful drawing primitives, but required bespoke graph semantics (hit testing, edge routing, compound nodes) that [Cytoscape.js](https://js.cytoscape.org/) provides out of the box.
140140
- Tried D3 force/layouts: flexible, but compound nodes (plates), nesting, and drag constraints became a significant amount of custom code to maintain.
141-
- Cytoscape.js offered:
141+
- [Cytoscape.js](https://js.cytoscape.org/) offered:
142142
- Native graph model with compound nodes (great for plates)
143143
- Integrated layouts (WebCola, KLay) and rich interaction APIs [@webcola; @elk]
144144
- Mature ecosystem and performance characteristics for medium-sized graphs
145-
- Vue 3 (vs React) for this project:
145+
- [Vue 3](https://vuejs.org/) (vs React) for this project:
146146
- Composition API made integrating an imperative graph library (Cytoscape) straightforward via composables and lifecycle hooks
147147
- SFC ergonomics and Pinia stores enabled quick iteration with strong TypeScript support
148148
- Template reactivity + refs reduced reconciliation overhead when bridging to Cytoscape’s imperative API
@@ -159,7 +159,7 @@ The legacy tool was a desktop application driving WinBUGS [@winbugs]; the new Do
159159
- New: Web UI, Julia backend via `JuliaBUGS.@bugs`, sampling with `AdvancedHMC.NUTS` through `AbstractMCMC`
160160
- Graph engine and plates
161161
- Legacy: Bespoke graph handling with limited nesting semantics
162-
- New: Cytoscape.js with compound nodes for robust nested plates; custom DnD for drag-in/out and creating inside plates
162+
- New: [Cytoscape.js](https://js.cytoscape.org/) with compound nodes for robust nested plates; custom DnD for drag-in/out and creating inside plates
163163
- Layouts and interactions
164164
- Legacy: Limited auto-layout support
165165
- New: Multiple layout engines (Cola, Klay) and stable interactions; positions updated after `layoutstop` [@webcola; @elk]
@@ -234,6 +234,7 @@ See `DoodleBUGS/runtime/server.jl`.
234234

235235
## Future Work
236236

237+
- Backend: Add Pluto.jl as a backend for supporting compound documents and QuartoNotebookRunner.jl for running notebooks.
237238
- Diagnostics/visualization: R-hat, ESS, trace plots, PPC, posterior densities
238239
- UX: richer node templates, validation, distribution hints
239240
- Persistence/sharing: save/load and shareable links
@@ -244,6 +245,5 @@ See `DoodleBUGS/runtime/server.jl`.
244245

245246
Much appreciation goes to my mentors Xianda Sun and Hong Ge. The work is impossible without your help and support.
246247

247-
- Mentor: Xianda Sun ([\@sunxd3](https://github.com/sunxd3))
248-
- Advisor: Hong Ge ([\@yebai](https://github.com/yebai))
248+
- Mentors: Xianda Sun ([\@sunxd3](https://github.com/sunxd3)) and Hong Ge ([\@yebai](https://github.com/yebai))
249249
- TuringLang/JuliaBUGS community and contributors

0 commit comments

Comments
 (0)