New v4.0.0 alpha release #1539
Pinned
jacomyal
announced in
Announcements
Replies: 1 comment 1 reply
-
|
I'm on the v3 line of Sigma.. How mature would you say the alpha release is? If I'm starting or converting a project to use Sigma, is v4 at a point where I should be starting here? Thanks! |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Sigma.js: New v4.0.0 alpha release
Hey everyone,
I've been working on a new version of sigma for quite a few months, and I'm really happy to announce the first alpha release of sigma v4. This post is a quick tour of what's in it and how we got there.
Why v4
The need for a v4 started from a few issues that turned out to be fundamentally incompatible with v3's architecture. There wasn't a clean way to fix them without breaking things, which is what motivated v4 in the first place.
Additionally, along the way, some other pain points surfaced:
nodeProgramClassesandedgeProgramClasses)In late 2025, at @ouestware, we had some time to dedicate to this task, and we've been lucky again to have @arthur-bigeard-gdotv from G.V() sponsor us.
OIT, and what actually worked
The original plan was to focus on Order-independent Transparency. That's still what the milestone for v4 mentions. But after several attempts, OIT wasn't the solution: I couldn't get it to combine fully opaque items with smooth opacity-based antialiasing.
Depth ended up being handled differently:
z-index, implement a layers management system, that allows rendering all types of items at different depthsThen, about the node shapes issues, when looking into where to anchor edges or labels to any node shape, I found that Signed Distance Fields are the consensus answer. SDFs gave clean math for label and edge attachment. And, even better, they come with an awesome comprehensive GLSL catalog, thanks to Inigo Quilez!
That made the rest of v4 possible: styles and primitives. Sigma no longer needs a custom program per node or edge renderer. Instead, it now compiles one unified node program and one unified edge program, and everything is configured declaratively.
What's in v4
Besides the architectural rework, v4 fills a lot of gaps from earlier versions:
NodeHoverDrawingFunction)And there's more in the codebase. The full documentation is at v4.sigmajs.org (with various new examples), and the changelog is available here.
Try it
I'd love for people to try upgrading real projects against the alpha and report back, especially on migration pain points, performance, and anything the new styles API makes harder rather than easier. New issues on the repo are all welcome, please make sure to use the
v4label.Thanks!
Beta Was this translation helpful? Give feedback.
All reactions