Releases: mkeeter/antimony
Antimony 0.9.3b
Antimony 0.9.3
Features
- Use alt modifier to drag values faster
- Add 'Show math string' node
- Pre-emptively clip rendering to screen size (which should make rendering faster when zoomed in)
- Easier packaging for Debian (thanks @pfelecan)
- Flatter icon (thanks, @ApostolosB)
Bugfixes:
- Tab and shift-tab now switch between datums like they used to (before 0.9.1)
- HSB color node is no longer black by default
- Fix extra images being drawn on load
- 'Hide UI' menu item actually does what it says
Antimony 0.9.2
Antimony 0.9.2
This release has relatively few user-facing features, but should make the lives of our Linux packaging volunteers easier.
There are also a host of bugfixes in sb.ui (which contains a set of immediate-mode UI calls that can be placed in Node scripts).
Features
- Building now uses
cmakeinstead ofqmake, which is much simpler sb.uifunctions now take an optionalkeyargument to disambiguate
Bugfixes:
- Dragging
sb.uishapes was not undoable; now, it is. - Correct positions are passed into controls with absolute drag callbacks
- Fixed a bug where you could end up with unparented control instances
Antimony 0.9.1
Antimony 0.9.1
News:
This release adds support for nested graphs!
The UI is also rewritten, pretty much from scratch. It implements the same
functionality in fewer lines of code and should be more robust in keeping the
graph and UI synched.
Nested Graphs
You can now add a subgraph by selecting Graph from the Add menu.
In its parent graph, a subgraph looks just like a script node:
The three icons open up
- The subgraph (as an editable graph)
- A single 3D viewport showing the subgraph
- A set of four 3D viewports showing the subgraph
Within the subgraph, you can add Inputs and Outputs from the Add menu.
These inputs and outputs are strongly typed and show up as floating Datums:
Other features:
- Unified undo / redo framework (should be more robust)
- Drag / drop targets are now larger (thanks, @awgrover)
- Local datum looking with
self(thanks, @awgrover)
Bugfixes:
- Trying to export at resolution 0 now prints an error message
- Fixed an edge case where undoing a connection didn't restore original text
- Fixed transparent windows on Wayland (thanks, @ApostolosB)
- Parsing long expressions doesn't fail
- Fixed
QGestureManagercrash (thanks, Qt 5.5)
0.9.0
Antimony 0.9.0
News:
This release has a new f-rep parser and a new graph engine!
Not much has changed on the user-facing side of things, but the internals are much spiffier (and will be easier to build on in the future).
New parser
The f-rep parser has been rewritten by @fros1y to use lemon and flex instead of a homebrew solution.
In this rewrite, a second way of expression math was added: infix notation (a.k.a. the way that most people write math). For example, instead of writing
-+qXqYf1
you can write
=pow(X, 2) + pow(Y, 2) - 1;
The leading = and trailing ; indicate to the parser that this is an infix string.
For examples of this new syntax, check out the [cylinder wrap (https://github.com/mkeeter/antimony/blob/develop/py/fab/shapes.py#L804-L824) function.
New graph engine
The graph engine has been rewritten from the ground up as a stand-alone library (though its design is optimized for Antimony's use-case). It no longer uses Qt signals and slots (or at all!), preferring the STL and C++11.
There's a slick re-evaluation optimization: when an upstream object changes, the engine properly sequences downstream update calls to minimize the number of times scripts and datums get re-evaluated. In practice, I've seen a 5x speedup on very large graphs.
Breaking changes:
Some of the changes made here are potentially breaking. There's a transparent migration path from older files; feel free to report bugs if it fails for you.
Namespaces
These changes will be find-and-replaced when older files are loaded, so things should Just Work in most cases.
fab.uinamespace has been renamedsb.uimetaobject (which contains export functions) has been renamedsb.exportfab.colorobject has been renamedsb.color
Graph changes:
It's no longer legal to connect an output datum to an input in the same script. Previously, this was legal (but a bad idea).
Datums of type str must have their expressions quoted. Previously, there was a magic check to auto-quote them if evaluation failed.
Other features:
Returnkey acts like tab when editing datums in an inspector.- Unary operators (rotate, scale, etc) preserve shape color.
- More information is displayed in viewport (thanks, @joshuashort)
- User data directory is searched for nodes (thanks, @astronouth7303)
- Gradients are calculated exactly (improves rendering quality).
right_trianglenow supports negative widths and heights- Keyboard arrows (up and down) adjust datum values in inspectors.
arctan2operator is now available in f-reps- Fun new nodes: volume-filling gyroids!
Bugfixes:
.sbextension is now added on Linux.- UTF-8 is used regardless of locale settings.
Thanks
Thanks to the following Github users for their contributions, large and small:
- @fros1y
- @joshuashort
- @astronouth7303
- @toomuchcookies
- @neilger
- @defnull
0.8.0
Antimony 0.8.0
News:
Antimony got unintentionally announced to the internet by a post on Hackaday; it then spent a few hours at the top of Hacker News. There's been a corresponding surge of interest (and Github issues), and we've already seen a few contributions from the community -- props to Michael for tracking down a mysterious GPU issue and Joshua for making right-click open the "Add node" menu.
I've created a Google group for people interested in contributing.
Features:
- Standardized shape and nodes libraries
- Moved functions from nodes to
shapes.pyto make them accessible - Cleaned up duplicate nodes
- Added UI handles to many nodes that were missing them
- Moved functions from nodes to
- Make selection less silly
- Previously, when a node defined multiple controls, they could be selected individually.
- Now, they're all selected simultaneously.
- Right-click now opens up add menu (@joshuashort).
- Added
--heightmapoption to start up with heightmap rendering. - Made
fab.types.Shapeconstructor accept a single string argument - Fixed building on a variety of Linux systems
- Made syntax highlighter fancier:
- It now properly highlights multi-line strings!
- Add orthographic view button.
Bugfixes:
- Adding a Control when "Hide UI" is selected now works properly
- Snapping to wireframe objects (in viewport) now works
- Removed multisampling to fix crashes on Yosemite with integrated GPUs
(hotfix to 0.7.9, thanks to @elbowdonkey).
0.7.9
Antimony 0.7.9
Features:
- Dramatic speedup in mesh export
- Added experimental feature detection to mesh export
(which finds edges and corners and pushes a vertex to keep them sharp) - Another major speedup in loading large files
- Made export workflow more flexible:
- In the graph view, create a node from the
Exportnode category - Attach shapes to its inputs
- Click the small arrow in the upper right of the node to run the export task
- In the graph view, create a node from the
- Added 'Jump to node' on right-click (in either 3D or graph views)
- Improved documentation
Bugfixes:
- Fixed a few memory leaks of Python objects
- Cancelling an export with Escape now actually stops the export task
- Changed the way that images are drawn to prevent (?)
QGraphicsScenecrashes - Removed multisampling to fix crashes on Yosemite with integrated GPUs.
0.7.8
Antimony 0.7.8
Features:
- Human-readable file format
- Friendlier for version control, manual editing.
- Older files will be automatically upgraded.
Set colour HSBnode (thanks, RobotGrrl)- Huge speed-up in loading large files (about 20X).
- Minor solver speed-up using
restrictkeyword.
Bugfixes:
- Fixed memory leak in applying
Transformobjects. - Don't spawn huge number of threads when loading complex files.
- If rendering is interrupted, don't leak images.
- Correct interface between
QGraphicsItemandOpenGL. - Fix huge leak of images and
OpenGLtextures.
0.7.7
Antimony 0.7.7
Features:
- Allow
fab.types.Shapeinput text box to be edited.- This required a file format change.
- Older files will be automatically upgraded.
- Warn when unsaved changes will be lost.
- Drag functions can now be specified for
fab.ui.wireframeobjects. Set Colornode allows shapes to be rendered in custom colors.- Add button that shows hidden datums (i.e. datums prefixed with
_). - Tooltips for buttons in inspector.
- Remove
Altas the Hide UI shortcut and added View menu option.
Bugfixes:
- Close script editor when datum is deleted.
- Fixed subtle bug in
Controlconstruction.
0.7.6
Antimony 0.7.6
This is a major release in terms of architecture:
All nodes are now defined as scripts, and scripts now have the power to
define UI primitives (points and wireframes) that show up in 3D views.
Files saved with 0.7.5 and earlier will be automatically upgraded to
using script nodes (instead of hard-coded nodes). This backwards
compatibility will be removed in later releases.
If you have a file for which automatic upgrading fails, send it in as
a bug report for further investigation.
Features:
- Added
fab.uinamespace, with hooks to create 3D view objects from scripts.fab.ui.pointallows points with user-defined drag functionsfab.ui.wireframecreates user-defined wireframes
- Added
fab.colornamespace with a set of standard colors. - Ported all hard-coded nodes into scripts.
- Skip early render stages if they are sufficiently fast.
- Show error message if Save As or Export target file isn't writable.
- New inspectors are placed in the center of a canvas if possible.
- Automatically upgrade hard-coded nodes in older files to scripts.
Bugfixes:
- Build issue:
sbdirectory is now created before subfolders are copied. - Off-by-one line highlighting error in script panes.
- Weird namespace issue in scripts.
- Remove white border in script UI (Linux).
0.7.5
Antimony 0.7.5
This is a pretty minor release feature-wise, but it's got a few simple
fixes that will speed up performance when designing large models.
Features:
- More nodes (thanks, Neil!).
- Limit size of script output window.
- Adding
strinput type for scripting
Bugfixes:
- Cache certain types of lookups to make redrawing graph window faster.
- Improve node change detection to make adding new nodes faster.

