SU Free browser wrapper

to be precise, the mac build from nativefier comes in at exactly…

121 290 278 bytes (121.8 MB on disk)

Chrome.app mac version…

178 525 751 bytes (179.1 MB on disk)

@jim_foltz, cheers, --disable-popup-blocking works a treat…

It seems I need to add printing to nativefier or use a Chrome SSB and set the --flags to prevent default behaviours…

john

Okay I’ve just installed Node.js and Nativefier.
Getting ready to do a test build on Windows 7 x64 …

… and I got an error from GitHub servers when it tried to download a temporary edition of Electron …

C:\nsuf>nativefier cli < opts.txt
  packaging [==============================                    ] 60%Downloading
Downloading tmp-6628-0-electron-v1.7.9-win32-x64.zip
Error: connect ECONNREFUSED 192.30.253.112:443

Reading between the lines in my posts, you can see that this is a strategy of which our team is aware. SketchUp Free will likely work well (someday) in this kind of implementation. With a few caveats related to typical OS related operations like open, save, print, keyboard access, &etc. Resolution of those issues, as well as some others related to online collaboration through a platform like Trimble Connect, are what has kept us from launching an official implementation yet. In other words, I recognize the opportunity, know there are some implementation details which are still hard to resolve… and I don’t have any new products to announce today.

I (emphatically) welcome any hacking about with this kind of thing to explore capabilities and opportunities for yourselves. Please just remember that we do have some specific language in our Terms of Service against redistributing SketchUp without our permission- for reasons which are probably apparent to you guys anyway.

The 3D Model Viewer in the Details page of 3D Warehouse is a version of SketchUp Free which does allow you to embed our viewer in other webpages (or standalone applications). Eventually, we will wrap that in a fuller-featured embed API similar to something like YouTube’s API. I bet you could come up with some clever implementations around that as well? Maybe there’s a standalone desktop viewer for a model you’ve hosted on 3D Warehouse?

3 Likes

It is most likely faster because it is using CEF, not because it is a native app. Safari (and Microsoft’s Edge) are not yet as efficient running applications like SketchUp Free as Chrome or Firefox are. If you want to judge performance, look at your Electron app side-by-side with SketchUp Free running in Chrome.

1 Like

I reluctantly re-installed Chrome a couple of hours ago for that exact comparison…

I have also run it inside SU Pro in a HtmlDialog, so some of the differences to Safari were known…

a.t.m. a Chrome SSB wins out only due to better printer access…

In an ideal world, I want a Single Site Browser where all behaviour is dictated by either SU or me…

john

1 Like

Reposting
Instructions for Windows 7

Download nodejs msi from this directory
https://nodejs.org/download/release/latest-v9.x/

for windows x64 the link is
https://nodejs.org/download/release/latest-v9.x/node-v9.4.0-x64.msi

install the nodejs msi
A reboot may be necessary

open a command prompt and type:
C:\Users\User1>npm install nativefier -g
If you have problems look to https://www.npmjs.com/package/nativefier/tutorial

Now, to package the app, at the command prompt type:
C:\Users\User1>nativefier -n SU_Free_Browser “http://app.sketchup.com/app” -a “x64” --app-version 1.0.0 --build-version 1.0.1 --app-copyright “sWilliams” -m -f --honest --enable-es3-apis

This will create SU_Free_Browser.exe in C:\Users\User1\SU_Free_Browser-win32-x64

Good Luck!

3 Likes

Developers like to open the dev tools and see what’s there (sometimes there are friendly messages) and tinker around. If SketchUp Free had already a JavaScript API or if I found an unofficial internal API that allows me to set camera.eye and camera.target, I would probably connect it to the Gamepad API and use my SpaceNavigator like in a game engine.

Thanks, I did finally get it to compile myself after foolin’ around for a couple of hours.
It is really picky about the parameters.

On Windows it winds up being 134 MB which is ~ 1/3 of both Chrome’s and SketchUp’s installs.
It is still a lot heavier than I’d think it should be.

At this size it may make sense for users who have not yet installed Chrome.
But for those who have, it doesn’t make much sense.


Also Avast “captured” it in a blue frame for ~ 20 secs whilst it was loading.
Not sure what that is all about as I’m relatively new to Avast.

For this exact reason, electron developers are often critisized that they lack a concept how to make use of package/dependency management systems. Bundling electron with a light-weight web app simplifies deployment, but users may end up with 5-10 “clones” of the almost same runtime environment. In times of deduplicating file systems this may become less a problem.

1 Like

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.

I asked for the thread to be unlocked not fully understanding what that actually means. I thought there would be more posts that I (personally) was prevented from seeing.

It looks as though the whole thread is now available for more comments.

While I don’t have much to say, I’m interested in knowing what others are experimenting with. Maybe (someday) I’ll have a useful contribution.

1 Like

@sWilliams

Thanks for your nativefier mini-tutorial. I like idea of converting cloud apps to local apps.

@Aerilius

[…] if I found an unofficial internal API that allows me to set camera.eye and camera.target, I would probably connect it to the Gamepad API […]

I use Gamepad API in Web Viewport of my PBR extension for SketchUp. It’s indeed fun. :smile:

I just did the same thing. The closest thing I found was:

//in the console
Module.saveCamera();
Module.restoreCamera();
Module.draw();

This also looks interesting but I couldn’t make it do anything.

p1 = new PannerNode(new AudioContext())

Seems like hooking up the game api would be relatively simple.

just for information - these pages are no longer available in case someone suddenly needs them …