Release: KinemeCore, v0.2

Release Type: Production
Version: 0.2
Release Notes

This update to KinemeCore provides numerous enhancements and bug fixes.

Note: We've been notified of some big problems with this release and have temporarily removed it. Updated version coming soon.

  • SafetyNet -- intercepts Quartz Composer crashes, and attempts to save your open compositions to the desktop.
  • CrashReporter -- automatically finds QC-related crashes, and allows you to submit them (with notes) when you start up QC.
  • Sleep prevention -- menu item to prevent system sleep (useful if you're using QC editor as a visualizer)
  • Fixed infinite recursion crash with some display setups
  • Fixed full screen editor "don't display again" check box
  • Fixed editor windows sometimes getting resized to 0x0 when toggling full screen editor

Installation Instructions


We've been kicking around an idea to take QC plugins up a step.

Right now, there's a ton of duplicated header information in each plugin's source code. Each time we discover something new about the internals of QC, we update the project we're working on, but those changes do not get applied to all the plugins that already exist. This has caused some confusion (which our 0.5 template release scheduled for later today should amend somewhat, albeit temporarily).

There's also a pretty big lack of inter-plugin resource sharing. This isn't too important now, but as more plugins take advantage of customizations not available in the QC core itself, more code gets needlessly duplicated, and, more dangerously, more code gets to suffer bitrot, and slowly drift away from more active projects' upkeep.

To address these issues in upcoming releases, we've decided to start work on a plugin/project called 'KinemeCore'. This will be a framework for other plugin developers, and a plugin for QC itself. The framework will help keep all plugins synchronized with the latest template headers, and will allow them to take advantage of updates made in later plugins.

The first beta release of KinemeCore is quite a ways off. However, the better we plan on it now, the more robust and powerful it will be when the time comes.

Here are some features/ideas we've been considering:

  • A modified fork of Sparkle for automatic updates for all plugins (handled by the KinemeCore plugin, so plugins require no additional code, just some plist settings).
  • Numerous port-type enhancements. Presently, we're working on "transparent array" ports that behave like single values to non-array-aware ports, audio ports, 3d data type ports (from points up to models and skeletons).
    • along with the above, we're also planning on making a QuartzCore test suite which will profile the internals of the QC runtime objects. We plan to find slower objects, and possibly re-implement them to respond faster. This will be transparent to users and developers, they'll only notice more nimble execution.
  • Convenience methods for common application needs, to make QC-aware applications a bit more versatile. This includes loading plugins from arbitrary locations on the fly, creating compositions from raw bytes instead of just files, and perhaps even a programatic interface to allow compositions to be altered on the fly.
  • possibly some wrapper layers for easier Tiger/Leopard compatibility for plugin developers. Images and OpenGL are in need of this, with OpenGL being trivial, and Images being more non-trivial.

What are some other features that would help out QC users, excluding more patches :)? What are some features that would help QC plugin developers?