Scriptographer.org - News
http://scriptographer.org/news/
Scriptographer.org2012年11月15日 17:46:45 +0100enThe Future of Scriptographer is ... Paper.js!
http://scriptographer.org/news/the-future-of-scriptographer-is-paper-js/
http://scriptographer.org/news/the-future-of-scriptographer-is-paper-js/2012年11月15日 17:46:45 +0100Jürg Lehni
<p>Adobe Illustrator CS6 has been available since late April 2012, so more and more users were starting to wonder when Scriptographer for CS6 will finally be released.
</p>
<p>
Aware that it is time for an official answer, I am finally taking time to formulate one. It was far from easy, but a decision has been made: I am not able to spend more time on making CS6 a reality, and instead will focus my time on creating a very decent alternative and escape route with <a href="http://paperjs.org" target="_blank">Paper.js</a>, a JavaScript library for the open web and the HTML5 canvas element that <a href="http://studiomoniker.com" target="_blank">Jonathan Puckey</a> and I have launched in 2011 and are very actively developing since.
</p>
<p>
The idea for Paper.js grew out of a research and teaching project at <a href="http://www.ecal.ch" target="_blank">ECAL</a> that we have been conducting during 2008 - 2011, in which we used Scriptographer to teach programming to visually thinking students in blocks of one-week workshops. In parallel to these workshops, as part of the research project we continuously improved, streamlined and simplified Scriptographer's API, added new functionality based on observations from the classes and wrote many tutorials and materials to facilitate the teaching. All this material has partly lead to Paper.js' success, since it allowed us to provide great documentation from day one.
</p>
<p>
Based on these experiences, we are now in the process of planning an online coding environment using Paper.js that sports a subset of the features that the Illustrator interface is offering, which was so beneficial when teaching programming since it allowed the inspection of the visual elements that the code produces.
</p>
<p>
I am currently using an early version of this environment for teaching at UCLA in Los Angeles, and results are so encouraging that we believe in a couple of months we will not be looking back anymore, and will be able to offer a decent replacement to the environment you came to love working with, with plenty of options to import and export graphics.
</p>
<p>
Since CS3, I have been regularly reaching out to Adobe, proposing to join forces in some way, as I thought they should be interested in our efforts. Unfortunately, they did not seem to be, or did not have the resources to spare. And with their own scripting environments based on automatic wrapping of native API still not receiving the love and attention to detail it deserves (their API is unstructured and hard to use), I just don't think that Adobe sees the necessity to invest energy there at this time. Personally I believe that is a mistake, and I have been trying to tell them so on multiple occasions. But given the quite fundamental changes that many of their applications have been undergoing in the past revisions, it is understandable that there were many more pressing issues.
</p>
<p>
For example, during the last decade, Illustrator for Mac went from OS 9 to OS X Carbon (yes, early versions of Scriptographer still run on Classic Mac OS!), from CodeWarrior to XCode, and now finally from 32 bit Carbon to 64 bit Cocoa. In CS5, the coordinate system was vertically flipped.
</p>
<p>
All these changes meant that with each new version, there was an increasing amount of time and effort to be spent to get Scriptographer functioning again. And unfortunately, the changes required to make Illustrator CS6 work on 64 bit Cocoa lead to the complete removal of ADM (Adobe Dialog Manager), the API that Scriptographer's whole user interface is built with. Even worse, there is no new API to replace it, developers are encouraged to either build UI in Flash, or use another cross-platform framework of their choice, and figure out how to integrate it in Illustrator, which is far from trivial.
</p>
<p>
So a large amount of time would have to be spent to port Scriptographer to CS6, work that will neither be pretty nor fun. Many people have suggested launching a Kickstarter campaign to raise the funds to facilitate such a transition. I considered doing so for a while, but then realised that with all other projects and commitments, I simply do not have the time to spare to do so, even with sufficient funds, as employing a programmer and coordinating it all would still be a huge effort.
</p>
<p>
But with all the source code open-sourced and available over at <a href="http://github.com/scriptographer/scriptographer" target="_blank">GitHub</a>, anyone with the energy and time at hands to do so should feel free to take on the project and make it live on. I would be more than happy and willing to outline the changes required for CS6 which I have pretty much mapped out in my head already, and assist the process.
</p>
<p>
Developing Scriptographer has often been painful and more hard labor than anticipated, due to its ever changing host. While working on Paper.js with Jonathan, I came to realise again how much fun programming can and should be.
</p>
<p>
While it is hard to abandon one of my darlings, the benefits from doing so simply overweight the downsides, and it is with an unburdened heart that I look forward to the new endeavours.
</p>
<p>
Many thanks to all of you who supported this platform over the years! We hope we are not losing you as users. Why don't you move along with us to the new platform that is shaping with Paper.js!
</p>
<p>
To those who now feel betrayed or see the base for their work in danger: There is nothing wrong with using CS5 for the time being, which is what we will have to do as well, since many of our own works depend on it to function.
</p>
<p>
I apologize for the bad news, and hope you can all appreciate this decision.
</p>
<p>
PS: I have removed the donation button from this website now. If anybody has recently donated money in the hope of fueling the transition to CS6, please get in touch and I will send you a refund.
Version 2.9.070 — Interface Updates & Bug Fixes
http://scriptographer.org/news/version-2.9.070-interface-updates-bug-fixes/
http://scriptographer.org/news/version-2.9.070-interface-updates-bug-fixes/2010年12月03日 16:25:50 +0100Jürg Lehni
<p>Version 2.9.070 just landed, fixing a row of nasty bugs that were introduced by the recent coordinate switch, but also adding a row of great new features, mostly related to the User Interface.
</p>
<h2><a name="interface-changes" class="anchor"></a>Interface Changes</h2>
<p>
It is now possible to navigate through the Scriptographer palette using only keyboard short-cuts, increasing the hacker-friendliness of the plugin a lot. When in the list of scripts, the arrow keys navigate the tree list of folders and files in the same way as we are used to for example from OS X's Finder: <em>Up</em> and <em>Down</em> navigate to the previous / next item in the list, while <em>Left</em> and <em>Right</em> collapse and expand folders. Hitting <em>Enter</em> then opens the currently selected script in the script editor of choice, and <em>Cmd-E</em> executes the script. New scripts can be created using <em>Shift-Alt-Cmd-E</em>, and all running scripts can be stopped using <em>Cmd-.</em>, even when the interface is unresponsive due to a running loop. If you forgot about these short-cuts, just hover over the buttons in the palette to see them again.
</p>
<p>
So why don't you <a href="/download/">download</a> it straight away and play around with the new features. And if you are curious, here a mini change-log for the most important changes and bug fixes.
</p>
<h2><a name="change-log" class="anchor"></a>Change-log</h2>
<ul class="list"><li>Fix coordinate system adjustments when working with gradient colors</li>
<li>Fix coordinate system related crash on CS3</li>
<li>Fix coordinate system adjustments on CS2</li>
<li>Correct matrix orientation of PlacedFile, PlacedSymbol and Raster objects</li>
<li>Fix update flicker when modifying TextItem objects.</li>
<li>Cause screen redraw in tools when new items are created already in onMouseDown, not only when the first onMouseDrag happens.</li>
<li>Fix issue in Console where <tt>document</tt> would not point to the currently active document.</li>
<li>Change short-cuts to not collide with internally assigned ones for tab-switching.</li>
<li>Fix 'Unknown error' exception in Dialog.fileOpen on Windows.</li></ul>
<p><div class="resource">
<a href="/news/version-2.9.070-interface-updates-bug-fixes/posts/3764/resources/Keyboard-Shortcuts.jpg/" target="_blank"><img width="115" height="128" src="/news/version-2.9.070-interface-updates-bug-fixes/posts/3764/resources/Keyboard-Shortcuts.jpg?v=db8705e95712819b479feef58b5c7ff8" id="thumb-1"></a>
</div>
</p>Version 2.9.064 Arrived
http://scriptographer.org/news/version-2.9.064-arrived/
http://scriptographer.org/news/version-2.9.064-arrived/2010年10月03日 22:23:05 +0200Jürg Lehni
<p>Just in time for this week's Scriptographer workshop at the <a href="http://ecal.ch" target="_blank">ECAL</a> School of Art and Design in Lausanne, we finished work on the new version 2.9. <a href="/download/">Download</a> while it's fresh!
</p>
<p>
In this release we added a few important changes that we would like to highlight here:
</p>
<h2><a name="coordinate-system-switch" class="anchor"></a>Coordinate System Switch</h2>
<p>
To go along with Adobe's switch of the coordinate system orientation in Illustrator CS5, we decided to make the top-down coordinate system the standard setting for new scripts. But since many existing scripts were written specifically for the bottom-up coordinate system that was standard until version 2.8 and CS4, we added a simple switch for users to turn on backward compatibility in their scripts:
</p>
<pre class="code">script.coordinateSystem = 'bottom-up';</pre>
<h2><a name="hello-degrees-goodbye-radians" class="anchor"></a>Hello Degrees, Goodbye Radians</h2>
<p>
And while we were in the process of yet another transition (maybe one day we will become as good at it as Apple), we figured this was a good moment to say goodbye to the confusing angle units in radians, and welcome the good old degrees as the new standard. Again, there is a switch for scripts to turn on radians instead and remain compatible with old code:
</p>
<pre class="code">script.angleUnits = 'radians';</pre>
<p>
We have added these switches to all scripts on the Scriptographer website, to make them backwards compatible with the latest version.
</p>
<p>
Read in more detail about these changes in the tutorials about <a href="/tutorials/geometry/the-coordinate-system/">The Coordinate System</a> and <a href="/tutorials/geometry/vector-geometry/#rotating-vectors-and-working-with-angles">Vector Geometry</a>.
</p>
<h2><a name="tutorials" class="anchor"></a>Tutorials</h2>
<p>
Speaking of tutorials, we spent a lot of time improving the existing ones and writing new ones such as <a href="/tutorials/interaction/working-with-mouse-vectors/">Working with Mouse Vectors</a>, so you may want to have a close look at all the <a href="/tutorials/">Tutorials</a>.
</p>
<h2><a name="new-relative-drawing-functions" class="anchor"></a>New Relative Drawing Functions</h2>
<p>
We also added very convenient new relative drawing functions to the <tt><a href="/reference/ai/path">Path</a></tt> object, such as <tt><a href="/reference/ai/pathitem#lineby-vector">pathItem.lineBy(vector)</a></tt>, <tt><a href="/reference/ai/pathitem#arcby-vector">pathItem.arcBy(vector)</a></tt> and <tt><a href="/reference/ai/pathitem#curveby-throughvector-tovector">pathItem.curveBy(throughVector, toVector)</a></tt>. These define vector shapes relative to the current location using vectors, which in our experience results in much simpler and more readable code.
</p>
<p>
These are exciting times for Scriptographer users, as working with Scriptographer keeps getting simpler, and learning to do so too, thanks to a growing amount of resources available online. We think it is a good moment to join the community, as the API is getting more and more finalized and stable too.
</p>
<p>
On this occasion we would like to express a big thank you to ECAL for helping us with our focused efforts by means of a financed research project.
</p>
<p>
Yours truly, the Scriptographer Team (<a href="/users/Florian/">Florian</a>, <a href="/users/Jonathan/">Jonathan</a>, and <a href="/users/Lehni/">Jürg</a>)
Version 2.8.055 is Up
http://scriptographer.org/news/version-2.8.055-is-up/
http://scriptographer.org/news/version-2.8.055-is-up/2010年7月20日 15:36:17 +0200Jürg Lehni
<p>Version 2.8.055 of Scriptographer was just released, including one new feature and a row of bug fixes:
</p>
<p>
The very convenient <tt><a href="/reference/ai/pathitem#getintersections-other">pathItem.getIntersections(other)</a></tt> function was added, which returns all intersections between two path items as <tt><a href="/reference/ai/curvelocation">CurveLocation</a></tt> objects, whether they are open or closed, simple or compound paths. Behind the scenes, this function performs a simple form of bezier clipping. <tt><a href="/reference/ai/curvelocation">CurveLocation</a></tt> objects are now used in many other places as well. See the reference for further information, and bear with us while we prepare tutorials to explain their function better. This is functionality that the <tt><a href="/reference/ai/pathfinder">Pathfinder</a></tt> does not offer itself. In fact, none of the Adobe Illustrator tools offer this exact functionality, so we believe this should open doors to a nice new family of scripts.
</p>
<p>
The release also fixes these known isues:
</p>
<ul class="list"><li>Fix wrong active components in prompt dialogs.</li>
<li>Fix an issue where list components were not correctly initialised based on their initially set value.</li>
<li>Fix an issues with keyboard short-cuts: Bringing up the main palette window and the console should work now when documents are open.</li>
<li>Fix various issues with SpinEdits positions and enabled / disabled states.</li>
<li>Fix an issue where displaying prompt dialogs would mess up the undo history.</li>
</ul>
<p>
As always, happy coding, and do not hesitate to get in touch if things do not work as they should or are not clear.
Version 2.8.052
http://scriptographer.org/news/version-2.8.052/
http://scriptographer.org/news/version-2.8.052/2010年6月08日 16:46:32 +0200Jürg Lehni
<p>Here a short note to inform you that the new version 2.8.052 was just uploaded. The previously released 2.8.050 introduced a few regressions due to the many under the hood changes, which were quickly identified and fixed. There are not enough changes for a real change-log, but below a list of what was fixed.
</p>
<p>
If you encountered problems with the previous release, please test again with this one first before reporting.
</p>
<ul class="list"><li>Fixed a bug in <tt><a href="/reference/ai/document#getitems-attributes">document.getItems(attributes)</a></tt> that prevented <tt><a href="/reference/ai/itemattributes#type">attributes.type</a></tt> from being recognised correctly.</li>
<li>Fixed UI layout issues with older scripts that directly work with the ADM package, where certain items would appear to have their bounding rectangles set incorrectly.</li>
<li>Fixed an error in the undo history tracking code that prevented item deletion from being detected in some situations and therefore leading to <tt><a href="/reference/ai/item#isvalid">item.isValid()</a></tt> falsely returning <tt>true</tt> for such items.</li>
<li>Got version for Mac CS to compile correctly again.</li>
<li>Fixed a row of issues in the code that generates the <a href="/reference/">Reference</a> templates and improved documentation for some of the new features.</li></ul>
2.8.050 Is Out, Welcome on Board, CS5!
http://scriptographer.org/news/2.8.050-is-out-welcome-on-board-cs5/
http://scriptographer.org/news/2.8.050-is-out-welcome-on-board-cs5/2010年6月03日 22:05:55 +0200Jürg Lehni
<p>It has been a busy couple of weeks here at the Scriptographer HQ, as we were adding new features and writing tutorials, squashing bugs, simplifying things further and also adding support for the new Illustrator CS5.
</p>
<p>
We are quite excited about the mixture of new things, simplifications and more stability that we added to this release and think it was well worth the wait.
</p>
<p>
Refer to the <a href="/download/changelog-2.8.050/">change-log</a> for a more complete list of what is new, but here some of the highlights:
</p>
<h2><a name="script-repository-manager" class="anchor"></a>Script Repository Manager</h2>
<p>
We introduced a new way to organise your scripts that is far more flexible and also more secure, as it prevents you from accidentally overriding your own script files: The Scriptographer Repository Manager lets you define multiple script repositories that serve as root folders for your scripts. These root folders show up in the Scriptographer Main Palette as if they were all nested together in one parent folder, but in fact they can be located anywhere on your hard-drive, and really should be located outside of the Scriptographer folder. In the future this will allow far simpler updates of Scriptographer to new versions, without the risk of any changes to your scripts lost – that is as long as you do not store your changes inside the default Examples folder.
</p>
<p>
Here is how it looks like with my personal configuration of multiple projects done with Scriptographer, all located in different parts of my harddrive:
</p>
<h2><a name="palette-improvements" class="anchor"></a>Palette Improvements</h2>
<p>
We also spent a lot of time thinking about how the already great new <tt><a href="/reference/ui/palette">Palette</a></tt> class could be made even more useful, simple and flexible. And we believe we came up with some really great ideas that we are soon going to write more about in the tutorial about <a href="/tutorials/user-interface/displaying-dialog-windows/">Displaying Dialog Windows</a>. We also changed many of the example scripts in the <i>Tools</i> folder to use this powerful new feature, so until the tutorials are done, the best way to see how to use it is to look at these scripts.
</p>
<p>
<tt><a href="/reference/ui/component">Components</a></tt> in palettes now support a couple of new values for <tt><a href="/reference/ui/component#type">component.type</a></tt>: <tt>'font'</tt>, <tt>'color'</tt>, <tt>'ruler'</tt>, <tt>'menu-entry'</tt> and <tt>'menu-separator'</tt>. But what's even better: If a script changes properties in the <tt>values</tt> object that is passed to palettes on creation, the palette gets updated automatically and efficiently. In the same way, the <tt>components</tt> object that is passed to the it now offers simpe access to the created <tt><a href="/reference/ui/component">Components</a></tt>, allowing the components to be disabled and enabled again, hidden and shown, list options can be changed, etc.
</p>
<div class="note"><b>Please note:</b>
<p>
From this release on, the classes previously available through the UI package are now deprecated. The reason for this is that the technology they are based on (ADM) will go away in CS6 when Illustrator will be ported to Cocoa. <br>
In order to prepare for this transition early, and also to simplify the way people work with Scriptographer, we decided to come up with this new way of making UI in Illustrator that we believe is very powerful and incredibly easy. The only classes you need to know of are <tt><a href="/reference/ui/palette">Palette</a></tt>, <tt><a href="/reference/ui/component">Component</a></tt> and <tt><a href="/reference/ui/dialog">Dialog</a></tt>.<br>
Documentation for the previous UI package, now dubbed ADM, is still available at <a href="http://scriptographer.org/legacy/adm/" target="_blank">http://scriptographer.org/legacy/adm/</a>.
</p><div class="text-end"></div></div>
<h2><a name="timers" class="anchor"></a>Timers</h2>
<p>
Lastly we would like to highlight a feature that might produce a whole new category of scripts: In this release, timers finally became reliable, much faster and stable, allowing them to be used to write background scripts that can continuously change items in the document. This can for example be used for animations, or other playful things, such as the new Throw.js script in the <i>Examples</i> folder. Timers are currently not documented in the reference, but you can use them in the same way as you would in browsers: <tt>setInterval()</tt> / <tt>setTimeout()</tt> to set a periodic / one-shot timer, and <tt>clearTimeout()</tt> / <tt>clearTimeout()</tt> to abort them again.
</p>
<p>
This should give a good overview of what is new. We are aware that a lot of things still need better documentation and will now again focus on that part.
</p>
<p>
We hope you will have as much fun with this release as we had making it.
</p>
<p>
So that's about it for now from us, time to <a href="/download/">download</a> and start writing your own scripts!
<p><div class="resource">
<a href="/news/2.8.050-is-out-welcome-on-board-cs5/posts/3316/resources/Repository-Manager.jpg/" target="_blank"><img width="240" height="149" src="/news/2.8.050-is-out-welcome-on-board-cs5/posts/3316/resources/Repository-Manager.jpg?v=c8ac17b2da7888722cc9d4bdf8cb7984" id="thumb-2"></a>
</div>
</p>Version 2.7.044
http://scriptographer.org/news/version-2.7.044/
http://scriptographer.org/news/version-2.7.044/2010年4月24日 01:39:03 +0200Jürg Lehni
<p>We just released another maintenance release. This finally solves a row of issues with mysterious crashes that we encountered for quite a while, making this the most stable release ever.
</p>
<p>
We have given it quite a hard time in our tests and have yet to experience a single crash.
</p>
<p>
Refer to the <a href="/download/changelog-2.7.044/">change-log</a> for a detailed list of improvements, and expect a bigger update with a row of nice new features soon!
Workshop «Outils Utiles» at ECAL
http://scriptographer.org/news/workshop-outils-utiles-at-ecal/
http://scriptographer.org/news/workshop-outils-utiles-at-ecal/2010年3月22日 10:39:00 +0100Jürg Lehni
<p>The 5th Scriptographer workshop was held by <a href="/users/Jonathan/">Jonathan Puckey</a> and <a href="/users/Lehni/">Jürg Lehni</a>. from March 8 to 12 2010 at <a href="http://www.ecal.ch" target="_blank">ECAL</a> in Lausanne.
</p>
<p>
The students were asked to come up with ideas for useful tools in Illustrator, either for their own needs or for something they identify as generally missing in Illustrator's functionality. During one intense week of teaching a mixture of geometry, scripting and designing simple user interfaces and interactions, the students then worked on turning their ideas into functioning products.
</p>
<p>
With <a href="/scripts/interactive-tools/time-bandit-2.0/">Time Bandit 2.0</a>, the first result of this week just started to arrive on the Scriptographer.org website now, and a quite astonishing one too. Who would have thought that Illustrator would be useful as an animation tool?
</p>
<p>
Thanks again to all the students for their enthusiasm for the scripts. We hope your work will inspire you and others to take this way of working further, beyond the scope of these workshops.
Version 2.7.040 Released
http://scriptographer.org/news/version-2.7.040-released/
http://scriptographer.org/news/version-2.7.040-released/2010年3月20日 02:07:29 +0100Jürg Lehni
<p>Version 2.7.040 was just uploaded. This is a maintenance release that solves a row of issues in the previous release without adding any big features:
</p>
<ul class="list"><li>Improved undo history tracking and item validation, solving the "invalid item" exceptions that often occurred in connection with undoing.</li>
<li>Fixed issues with tablet data arrays, where setting one type of tablet data would erase all the others.</li>
<li>Display spin edit controls correctly on PC.</li>
<li>Improved working with layers, fixed <tt>layer.clone()</tt> and hierarchy traversal using <tt>layer.previousSibling</tt> / <tt>layer.nextSibling</tt>.</li>
<li>Palette windows now remember their last position.</li>
<li>Prompt and alert dialogs now appear centred on the screen.</li>
<li>Scriptographer window is displayed by default when first launched.</li>
<li>The Hide / Show Scriptographer menu entry is not confused anymore on the first launch.</li>
<li>Added <tt><a href="/reference/ai/item#index">item.index</a></tt>, returning the index within the parent's list of children.</li></ul>
Version 2.7.037 Is Here
http://scriptographer.org/news/version-2.7.037-is-here/
http://scriptographer.org/news/version-2.7.037-is-here/2010年3月08日 00:00:26 +0100Jürg Lehni
<p>Just in time for this week's workshop at <a href="http://www.ecal.ch" target="_blank">ECAL</a>, we released the latest version of Scriptographer. As always this includes a row of bug fixes, and this time also some quite substantial performance improvement in various fields.
</p>
<p>
But most of all, this includes new functions and classes for creating user interfaces and palettes in very easy ways, as described by the new <a href="/tutorials/user-interface/displaying-dialog-windows/">Displaying Dialog Windows</a> tutorial. Speaking of tutorials, we also wrote quite a few <a href="/tutorials/">new ones</a>.
</p>
<p>
As this is the main new feature in this release we are not going to include a detailed change-log this time.
</p>
<p>
We believe that the new <tt><a href="/reference/ui/dialog#dialog-prompt-title-items">Dialog.prompt(title, items)</a></tt> and <tt><a href="/reference/ui/palette#palette-title-items">new Palette(title, items, values)</a></tt> functionality offers a really great way to make more interactive scripts and we cannot wait to see the outcomes.
</p>
<p>
This should basically eradicate the need to tinker with any of the complex types in the UI package, which is a good thing, as Adobe will likely move away from ADM in CS6 onwards due to the necessary switch to Cocoa on Mac in order to support 64 Bit. This will break all of Scriptographer's UI code and making it literally impossible to maintain backward compatibility for the UI package. Therefore the methods described in the <a href="/tutorials/user-interface/displaying-dialog-windows/">Displaying Dialog Windows</a> tutorial will be the only ones guaranteed to work in the future in order to create user interfaces in Scriptographer.
</p>
<p>
As always, <a href="/download/">download</a> and have fun!