Own ruby extension and SketchUp Pro License


#1

Hello, I have a question about the license agreement for Sketchup Pro and could find only answers partly answering some of my questions. In short it is not clear to me if I am allowed to run the following scenario. A ruby script generates a 3d model based on several paramaters that can be supplied to the script via various input sources. One of the input sources is a web page, where the webserver communicates to Sketchup via TCPSocket. After finishing the skript, Sketchup then writes a jpg into a folder. Images from that folder can be accessed via webserver.
I use Sketchup Pro to run on a windows 2012 server (not in any virtual environment, plain install on desktop of windows). The reason I ask is because the Sketchup Eula states below the line with the virtual server "…
You may not use or host the Software in a virtual server environment.
You may not distribute, sell, sublicense, rent, lease, or use the
Software (or any portion thereof) for time sharing, hosting, service
provider, or like purposes."
That it is not allowed to use Sketchup in a …hosting… environment. So is the described scenario allready ‘hosting’?


#2

Hi Mmroper

Unfortunately, we are not able interpret the EULA or give legal advice. You should consult an attorney if you are unsure about how our EULA, Terms of Service, etc, apply to your particular situation.

Best Regards
Bryce Stout
SketchUp Product Manger


#3

The actual question may be a bit simpler.

Are YOU or an employee the only ones using the SketchUp application, and is only one person using it at a time ?

The EULA is quite clear that you cannot transfer your privilege or license to use the software. (And any of your employees must agree to the EULA terms, or otherwise not use the software.)

So you cannot allow any friends, customers or strangers to use the software remotely, like as if it is a cloud application.


#4

Your usage explanation is not clear.
I assume this is what happens…
Your script is given [or sold?] to a Sketchup user.
It could check for their SketchUp’s Pro-ness, but let’s skip over than…
The script runs.
It does some processing [within a SKP on the user’s computer], and finally makes an image which can then be uploaded to a website ?
So as I see it so far it’s done nothing against the EULA, if the user is dong something wrong then it’s up to them, not you…

What do you do ‘server-side’ ?
If you ‘receive’ the user’s image file it’s somewhat academic how they made it…
Now if YOU run SketchUp [Pro] server-side, and YOU somehow reprocess that image and give them back another file [even a SKP], then it seems to me you are doing so within the terms of the EULA.
BUT if you allow users [who are not the licensed ‘YOU’] to [somehow] remotely control your own copy of SketchUp [Pro] server-side, then it’s probably against the EULA !

Of course this is NOT a ‘legal opinion’ - so seek appropriate advice - BUT make sure you explain your steps very clearly…


#5

I don’t really think it legally matters where the SketchUp is installed, ie, on the same machine that serves the webpages, on a separate machine connected by a LAN, or on a machine remote from the web server connected by WAN or Internet, etc.,… if the SketchUp application is controlled by people who are not a party to the license agreement under which the SketchUp install in question is used, then it is a EULA violation.

But perhaps the Trimble corporate legal might like the idea, or not care in a particular case, and might give a written variance, or special permission.

It can’t hurt to ask, but you likely have to do so in writing sent to their corporate. I wouldn’t say the chances are good. They probably do not wish to spend a lot of time processing requests like this, nor would they wish to set a precedent.


#6

Thank you all for you answers, they sure help. As of now I only run a prototype so before working more on the idea, I like to explore the possibilities of how far the idea could be expanded and still stay within the legal framework.

Basically what I try to figure out here is, how far automation for Sketchup-Ruby or even C Extensions are allowed to go and I hope this thread might answer similar questions to others. So lets construct some examples and see what you think.
All of them will touch my initial question one way or the other.

Scenario 1 : Lets say a startup-internet shop would like to sell 3d-prints, on their website, a shop-user could somehow build/configure the 3d-object he wants to buy. After purchase, the order gets processed and as part of the process Sketchup has to build the final data/file to run the 3d-printer. Would the license still cover that process if the Sketchup-instance was running on a server and be remote controlled, by some other internal programs? I guess we can agree that it would never be a problem if an employee would work with sketchup-user-interface directly, within this process.

Scenario 2 : a company building toy-airplanes uses Sketchup internally as part of a process to automatically build 3d models of planes, to evaluate these models in another software that calculates aerodynamics for them. As in the case above Sketchup is remote-controlled by other software in the process. In the beginning of the process an engineer has entered into a text-file the variations that Sketchup should calculate on the model.

Scenario 3 : a large house-building company/architecture firm usually builds similar buildings, only minor variations such as balcony, different windows and doors or different roofs/angles are needed. To speed up the time to create presentations they automate Sketchup to apply such variations to the building-model. Now on their website they open up an option to build/configure those variations and see preview images of the desired building, the images usually come from a cache of pre-rendered images. In case of combinations that have not yet been requested they have a software trigger the automated sketchup to create some new images and add those to the cache.

So basically one could boil this all down to the question, is a user required to operate SketchUp by hand (aka the user-interface) and is remote controlling Sketchup by other software disallowed. Or if remote-controlling is an option, where are the limits to how far this remote controlling is acceptable.


#7

You are attempting to dance around the basic violation. Again…

Why? Because you would be attempting to transfer your privilege to use the software under the license, to others who have no such privilege. They are not a party to the specific agreement between YOU (or your company,) and Trimble.

It is simple.

I know you are excited about SketchUp and it’s power with regard to Ruby scripting, but yes fundamentally, it is licensed as a GUI application.


#8

With regard to Scenario 1,… be careful.

Trimble is already engaged in this kind of web-based print service(s) along with certain “partners”, hence the name SketchUp “Make” (ie, MakerBot, MakerFair, etc.)

Watertight models on the Trimble 3D Warehouse now are also being served in print ready STL format.

So expect to get slapped down quick, if you attempt to use their own products to compete against them.

On the other hand, if you can bring something new to the game, along with knowledge, experience, ability and capacity, then they might be interested in becoming partners.

But it is clunky to use a GUI application as a server utility, when there are other APIs that do not use as much resources as the GUI app.


#9

Thanks again DanRathbun, I get your point and I have to agree to most of what you say. Especially the fact that it truly is clunky to use a GUI app that way. What other APIs did you have in mind? If we do not get any more official opinion here, we can close by saying that Sketchup can not be used to hand control to another application or person, if those persons are not part of the license agreement? That would mean that an purely internal automated Sketchup could be within legal limits?


#10

Well it is no secret that Trimble also has a C SDK. This is not subject to the same license as the GUI application is. (It is governed by the “API Terms of Service” only.)

This SDK is what other modeling applications use to integrate SKP import and export into their own codebases. But it is not limited to that.

SDK Start Page
SDK Documentation
Trimble SketchUp APIs Terms of Service (PDF)

Beyond that. There are lightweight utilities that create model files. They might not be SKP files. Some are OpenSource, some not. You’ll need to do some research,… I can’t do this kind of work (“consulting how best to do something commercial”,) without compensation. My personal policy. Any workflow kind of thing, that saves time and effort, is very valuable. (But it’s not something you can’t find out, by spending a few days doing web research.)

I also do not myself do paid work with the C API, at this time. (I really hate C with a passion.) There are others here that do, however. (Or over at SketchUcation.)