New Plug-in Manager


(Travis Serio) #1

Hello everyone,

We’ve been working on a new Plug-in Manager that will allow us to create a better cross platform experience for both Windows and Mac versions of Rhino. To kick that effort off we’ve recreated the existing Rhino for Windows Plug-in Manager using the cross platform abilities of ETO.

The current Rhino 6 WIP now has this new Plug-in Manager functionality active within it.

For the most part it should operate just as the original version did with a few new feature enhancements and UI refreshes that were made during the conversion.

Some new things to take note of are:

1) There is a more granular style of filtering plug-ins registered with Rhino

2) A new context menu that dynamically changes to give you options relating to the plug-in and its current load state as well as new functionality to open the folder location of the selected plug-in.

3) New support for custom icons and descriptions for plug-ins (Wiki for developers coming soon).


Please click around and let us know if you find any issues in this WIP.

Thanks,

-Trav


(Gustavo Fontana) #2

Hi Trav,

As and end-user I do not see a lot of benefit from this. It’s shocking how little work you guys do encourage and make easier plugin use and management. I can tell you that most normal users I encounter when I tell them that to do X they need to get a plugin they just stop listening. The entire process of acquiring, licensing, updating, saving, tracking them is just too painful.

I have 8 problems that easily come to mind when dealing with plugins:

1. New computer setup: When I go to a new machine and install Rhino my custom plugins will NOT be there. And I need help wrangling what’s not there and make it work in my new computer. Show me a list of missing plugins based on my Rhino license account. So you help me bring all that back to a new system.

2. New Version or Rhino compatibility: Also when a new version of Rhino comes out I cannot keep track of which plugins work with it or not. Or if/when the plugin developer has released a new version.

3. DO I have the latest version?: I have no way to know if certain plugin is up to date or not. So a place to let me know that, and allow me to hit ‘update’ would be very helpful.

4. I cannot recall what commands or toolbar are associated with a plugin?: It would be great if the properties tell me that.

5. I do not know who created a custom plugin, someone on the forum, but who?: Will the publisher section always say that? or can you allow me to add notes and type it in myself?

6. What’s my licensing information for a plugin that requires it?: is it a license key? What’s my username? what email did I use to register?

7. Allow me to sync plugins across machines: Just like bringing some sanity to create a new install in a new computer, I want to also keep two/three computers in sync in terms of what plugins I have, when they get updated, etc.

8. Allow me to uninstall/wipe a plugin I don’t want anymore: Right now in one of my machines I have ‘Awful Nvidia Realtime BS Render’ (that’s the real commercial name, I swear) plugin that I had installed to try. I have no idea how to get rid of it and of all the annoying startup warnings telling me I don;t have a license. Let me nuke that crap with one click.

Not a problem but an extra opportunity:

9. Allow me to share the info/existence of a plugin: A share via twitter/facebook/email would be a great nudge to plugin developers, something you guys can code in a couple of hours.

…Sorry, you asked. :sunglasses:


(Steve Baer) #4

You pretty much laid out almost all of the reasons that we revamped the plug-in manager UI (there are a few more.) These features are hopefully in the not so distant future; we just don’t have anything to show off just yet. We needed to rebuild the foundation for the plug-in manager UI first so we can start integrating many of these requests.


(Gustavo Fontana) #5

Cool, one more thing: a help section would be great, with links to user/support forum, manual and YouTube channel.

And ponies. We want ponies like in every other feature. Just to stay consistent.

G


(Steve Baer) #6

We need to find a couple unicorns to work on that issue.


#7

This. I would also add here that being able to sync preference and other settings such as display types, command key alias or custom colors. I could see this working with my McNeel login or some other similar “cloud” feature. It could be integrated into Zoo as a “company standards” package.

Joel


#9

Hi Steve, don’t know whats in your list of new features, but right now it is not possible to find out which plug-in serves a certain command - except by clicking through all plug-in properties. So a feature to find a plugin by command name could be useful; sometimes…


(Travis Serio) #10

Hi Jess, I don’t think that would be too hard to put together. I will add it to the list.


#11

[quote=“Trav, post:1, topic:45719”]…
using the cross platform abilities of ETO.
[/quote]

Excuse my ignorance but what exactly is ETO?

It is any chance to make all the future plugins compatible with Mac? Right now almost no plugins can run on Mac.


#12

Eto is a cross-platform UI framework which relies on native controls. Meaning, you create your UI using Eto classes like Eto.Button or Eto.Form or Eto.TextBox, and when that code runs on windows, these defer to WPF or Winforms, and when the code runs on mac they defer to Cocoa or … Major benefit is that the very same code runs on both platforms, you don’t even have to compile two different versions of the same source for different platforms. Downside is that since Eto has to run on many platforms, you tend to only get the functionality that is shared between them all, i.e. the lowest common denominator. Curtis is coding up more advanced controls from first principles, but it’s still a bit of a limitation.

Actually almost all plugins can run on the Mac, just as long as they don’t do any custom UI. If the plugin just provides a bunch of commands, then everything works fine.


#13

Maybe I’m wrong but a lot of plugins are .exe installers and I have no clue how to install them on Mac. Can you please provide a tutorial on how to install a Windows plugin on Mac? Par example MadCAM or RhinoCAM will be a good starting point.

Or even simpler. Please could try to make the “Interop.Dsofile.dll” working on Mac? This component it is used by the Grasshopper component Elefront, and because at start it is trying to load this Interop.Dsofile.dll file which seems that it is not possible, the Elefront component just don’t work on Mac. Thank you.


#14

Well I was talking only about .NET plug-ins, because Eto is a .NET library. When it comes to C++ code it’s a whole different story.


#15

Ok. Any chance to see at least support for .rvb scripts on RhinoMAC? I think that they are not using any extra UI features, so need to be easy to add support for them. I have some very useful .rvb scripts but none of them it is running on RhinoMAC.


(Wim Dekeyser) #17

Nope.

You’ll have to translate these to python.


#18

How difficult will be this task for a non-programmer? I think I will need to know programming to do this?


(Menno Deij - van Rijswijk) #19

I think I will need to know programming to do this

It helps, but is not required. I’ve seen many a non-programmer write decent Python code after some investment in learning the language and its possibilities. In the following topic there are some links to Rhino and use of Python.


(Nathan 'jesterKing' Letwory) #20

That already would make a person a programmer…


#21

Indeed. Barring script objects like FileSystemObject or even plugin objects, the core set of instructions in VBScript is actually pretty small. I wonder to what percentage correctness an automatic VBScript -> Python converter is possible. Python already has a set of functions that seems to cover the RhinoScript methods, so that shouldn’t be too difficult either.


(Menno Deij - van Rijswijk) #22

That already would make a person a programmer

Yes, for certain values of programmer you are right :wink:


(Brian Gillespie) #23

RH-40339 is fixed in the latest WIP