Now that everyone has had a chance to get to know the new features of SketchUp 8 (like the new solid tools), it is a good time to look at what may be in store for the next release – presumably version #9. Fortunately, as with the last release, a recent survey on Google’s website queried ideas for those features. And a few days ago, Google commented on those ideas and wishes on their blog.
I am happy to see that the integrated plugin management that I had asked for in last year’s iteration of the survey again made it to the top. With all those great, available plugins and a total lack of a centralized repository or even just update checking within SketchUp, this request is very justified. Here’s John Bacus’ response to the request:
Plugin Manager for Ruby Scripts
“Build a system that allows for Ruby scripters and their users to easily manage their collections of Ruby plugins within SketchUp. SketchUp users should be able to find, install and enable/disable new plugins (similar to an “App Store” model). Ruby developers should be able to market, distribute and maintain (upgrade) their plugins to SketchUp’s active user community.”
This was a top-voted idea last year as well, and I think it is clear to the development team that Ruby’s use has outgrown our original “Extensions” system for management. Doing this the right way is a really big project for the team to tackle and it wouldn’t happen overnight, but we’ll look into it further.
I have been working quite a while now with WordPress (the blogging / CMS platform for creating websites) – I am actually writing this post using it. Having loaded many plugins onto my sites, I have been a frequent user of their plugin system. And I think it could serve as a model for what is needed in SketchUp. Here’s how it would work:
The online component:
This would be an online repository for plugins. If you want to know how it looks with WordPress, follow this link and look at some plugins: http://wordpress.org/extend/plugins/
This would basically be a database for plugins containing links to a download location for the necessary files, a current version number (which allows for SketchUp to check if a new version is available) and other information such as the author’s website and a description. If Google decided not to want to host the plugins on their site, then they could easily ask developers to host them on Google code or anywhere else on the web and just provide a link to the file for the database.
This online system could also provide for a very simple validator that would check the integrity of the source file structure before a plugin is accepted into the system. For the most part, this would only require checking whether the plugin loader file contains the appropriate data and if the plugin itself is supplied in a subfolder structure.
Let me show you how this works in WordPress. First, there is a plugin manager page that allows for activating/deactivating of plugins. In addition, there is an automatic check for updates and a one-click updating function.
It can’t be too hard to implement this in SketchUp. After all, SketchUp already has an extensions management dialog. Beyond that, this method only requires comparing values (version numbers) with the online database and then downloading and installing files. Everything could be housed in SketchUp in a nice dialog, accessible from the plugins menu. Here’s what SketchUp has now:
At this point, SketchUp plugins must be formatted in a certain way to be able to take advantage of the current Extensions system within SketchUp. In addition, while it is possible to disable plugins from the Extensions dialog in the preferences, SketchUp cannot unload a plugin once it is loaded and thus requires a restart. While some of those limitations likely are unsurmountable, I think the updating functionality is most important and is (relatively) easy to implement.
Another nice component of the WordPress system is a built-in plugin finder and installer:
This page basically searches through the plugin database and downloads/installs the new plugin. This is again simply a database search and requires only some file downloading.
My attempt to create functionality that goes roughly in this direction is the Plugin Loader plugin, which you can download from this site. Browsing/searching a database would be much better than searching through websites, though.
Finally, for the advanced user there is also a built-in plugin editor in WordPress:
While this would not be absolutely necessary for “general use” SketchUp, it is relatively easy to implement as I have already shown with my Ruby Code Editor plugin.
Having said all of this, it is important not to forget that related issues still are:
- The ability to organize the menu structure created by plugins. This is already partly provided by Smustard’s Organizer plugin but a built-in solution would be preferred.
- A 100%, permanent, irrevocable fix to the toolbar system that keeps toolbars that have been created by plugins where users put them.
I am curious if this feature makes it into the next iteration of SketchUp. It will also be interesting to see which of these components will be provided by Google and which ones by the user community. In any case, improved plugin management will be of great help.