Parsegraph

Parseblog

This blog covers updates and links in Parsegraph development.

March 9, 2024

Electron apps!

I got the pipelines done for the Electron apps. They have some nasty bugs and the Mac OS version is untested, so I will need to wait on those platforms until I buy certificates before releasing them. 😔

Linux platforms are not affected, and I was able to install the Fedora RPM myself. The "requires you to save" bug is annoying, and the experience right now is just a direct port of the web app, so it needs polish to take advantage of it being a desktop app.

Known Electron issuesOther improvements

Undo/redo now shows its count, generating parsegraphs in a web worker, a dialog pops up if you go off-screen, re-centering is somewhat smarter, touch and mouse events should be properly canceled if you leave the app, hovering shows a highlighted border, and even some library bug fixes.

March 6, 2024

Auto-published API documentation

Documentation for the parsegraph API is now published whenever new versions are pushed or published. There is the latest docs and the nightly docs that are remade on any good-looking push to main. There's also version-specific docs starting with this version, 6.1.8. This version will match the parsegraph NPM version. The old docs page now just redirects to the latest docs.

March 5, 2024 Changelog

New "Recursive Cross" template

Check it out! It's the "Recursive Cross" template, set at 4 rounds with some styling. Because of some performance improvements, I was also able to increase the maximums on several other templates.

Tab support

Tab will take you through nodes in the graph in that node's "paint group". A paint group is a collection of nodes that are drawn together, so it makes sense that tab would take the caret through these nodes. Shift-tab will take you in reverse through the paint group.

To move to the next paint group, use "Page Down". To move to the previous page group, use "Page Up". (More keybindings pending, but probably [ and ] or something).

Pressing 'p' will "crease" a node, creating a new paint group with that node and its connected descendents, up to the next paint groups if there's any.

WASD keybindings

I added support for WASD keybindings, so 'w' will move the caret UPWARD, and 'd' will move the caret forward. 'q' will move the caret inward, and 'e' will move it outward back towards the root node.

Holding shift will pull the node in that direction towards the caret. Pulling will change the preferred axis of the current node so that the pulled node is laid out first. In general, this means that this node will be closest to the parent.

This is in along with the usual vim-style 'hjkl' keybindings, which work the same way. For vim-style, 'i' and 'o' are provided for inward and outward movement.

Bugs and feature update

I documented a lot of issues on Github that give an idea of upcoming features. I just did a big refactor that took a couple days, but in general, adding new things is quick because the layout algorithm is holding up.

Are there still bugs? Currently in this release, there is one that is hard to reproduce where the editor will freeze. This is usually because the renderer can't complete rendering, but I do not know root cause, and sometimes that is a layout algorithm bug. The other is that the most recently picked color is not applied, or doesn't appear to be applied at times. I have reproduced this one.

Visualizing extents

Pressing "n" will toggle the node's extents. This is a debugging feature but it is interesting to see. This is the only way you can see how node fit will change a node. All aligned nodes will automatically get an exact node fit, so the "tournament" template is a good one to see this with. (Remember to press "b" to toggle world labels if they're in the way)

Vertical extents

This is showing the vertical extents of a node and its descendents. These are computed for every node and combined to ensure all nodes remain minimally separated from one another.

Horizontal extents

This is the same, but in the other direction. This one honestly looks a bit strange, but an exact node fit is much more complex than a loose one which would consider this all as one single extent bound.

parsegraph library

The latest version of the parsegraph layout algorithm is now 6.1.7 on NPM. It fixes some bugs that would cause endless renders.

March 1, 2024 Changelog

Color support

Colors are now supported and persisted. Parsegraphs that were saved previously will still be loadable. A Parsergaph keeps track of both node-specific styles and also page-wide styles (known as the default node stye).

The camera location, selected node, and page background color are also persisted.

New templatesEnhancementsBugfixes

February 28, 2024 Changelog

BugfixesNew Features

Parsegraph showing PNG chunks

Parsegraph showing a PNG chunks

Parsegraph showing JPEG EXIF metadata

Parsegraph showing JPEG EXIF metadata

Other Enhancements

Known issues

February 22, 2024

General release!

Stress test (primes)

The stress test generates up to the given number of primes in height.

Keyboard controls

Tab - go to next sibling node
Shift-Tab - go to previous sibling node
Page up - go to next paint group
Page down - go to previous paint group

ArrowUp - move caret upward
Arrow Right - move caret forward
Arrow Down - move caret downward
Arrow Left - move caret backward
= (equals), + (plus) - zoom in
- (minus) - zoom out
Escape - re-center

Insert, Enter - edit node value

u, z, Ctrl-z - undo
y, Ctrl-y, shift-r - redo

w, k - spawnMove upward
a, h - spawnMove backward
s, j - spawnMove downward
d, l - spawnMove forward
q, i - spawnMove inward
e, o - move outward

x, backspace, del - delete node

W, K - pull upward
A, H - pull backward
S, J - pull downward
D, L - pull forward

v - toggle alignment
f - toggle node fit
~ (tilde) - toggle scale
p - toggle paint group

c - toggle node styling dialog
p - toggle crease
        
Privacy

Parsegraph's servers do not consume or process imported data. Imported data is processed solely on your client.

Legal

This website is maintained by the author to host Parsegraph Freeform and parsegraph docs. This content is free to share and reuse. Parsegraph and Parsegraph freeform are free and open-source software and MIT-licensed where appropriate.

Technical

For issues with this website, contact the webmaster via email

Back to top