Earlier this week Stephenson's Rocket arrived at Manchester's Science & Industry Museum and, of course, I went to see it.
Fig: Rocket in its modified post-Rainhill form at SIM Manchester
At the same time the Science Museum released a downloadable 3D scan (CC BY-NC 4.0) on Sketchfab. It was too complex to import directly to OpenSim so these are the steps I took (as a relative mesh novice) to bypass this issue.
Fig: The Science Museum Rocket mesh after import to OpenSim with prim-built models of Rainhill Rocket, Novelty and Sans Pareil
- Firstly, I used IrfanView to scale the texture provided down to 1024x1024 px, the largest that Firestorm will import, and then imported this to OpenSim.
- I then loaded the mesh into Autodesk Meshmixer (available free as part of the Feedback programme) and used Edit > Plane Cut to divide the mesh into smaller pieces. These were then exported in .obj format and imported into MeshLab.
- In MeshLab I used Filters > Remeshing etc > Simplification: Quadric Edge Collapse Decimation to reduce each piece separately to 21500 tris before exporting in .dae format
- The separate pieces of mesh were then imported into OpenSim, scaled, combined and textured using drag-and-drop. Finally they were linked and (optionally) made phantom.
- The final product can be exported via the righclick menu (3rd level) and reimported if required.
At this stage I thought it would be interesting to test Convoar. This is an amazing utility by Robert Adams (aka Mr Blue) that converts OpenSim Archive files into glTF format. Austin Tate has a useful blog on glTF, including Convoar.
- I downloaded an OAR file of the region I wanted to convert. This contained the Science Museum Rocket together with simple prim-built models of Rocket, Novelty and Sans Pareil locomotives (permissions were not an issue).
- I downloaded the Convoar distribution from Robert's Github repository and unzipped it. I copied the OAR file to the dist folder.
- I opened the Windows 10 CMD utility, navigated to the Convoar dist folder and invoked Convoar as "convoar rocket.oar". Use of the -m flag, i.e. "convoar -m rocket.oar" groups meshes with shared materials and accelerates loading. In my limited experience this worked best with widescale architectual builds while the simple rocket.oar was most satisfactorily handled without the flag.
Fig: Model viewed in Windows File Explorer after conversion to glTF format by Convoar. Good fidelity with the OpenSim model.
The glTF file (together with a number of buffer files and images, the latter in a sub-folder) that could be previewed in Windows File Explorer and loaded into Windows 3D Builder. However, for some reason I was unable to export from 3D Builder in glTF format (Sketchfab also generated an error from the original Convoar file; however, it may simply be a glitch with this particular scene) so I exported from 3D Builder in the binary GLB format and then uploaded the resulting file to Sketchfab. It is consequently now available for viewing via the web as well as various HMD options, including Cardboard.
Fig: Convoar model imported to Windows 3D Builder. This seems to be where some of the glitches were introduced (I have negligible knowledge of 3D Builder).
The end-product is not without issues, some of which may be due to my ad hoc style of building. For whatever reason after exporting from 3D Builder some colours appear not to have been applied that were used to tint textures. In the interests of efficiency in loading and rendering Convoar also does some downscaling so Rocket's textures are not as well-defined as the original 1024x1024 used in OpenSim. Bear in mind also that I am very new to this at present.
That said, I am massively impressed with the ease with which content with suitable permissions can now be generated in OpenSim and exported for use on the web. Kudos to Robert who has his own viewer, Basil, together with a range of pre-converted content. However, it should also be possible to use the models in VR/AR development environments such as A-Frame as well as Sketchfab.
The GLB model imported and annotated in Sketchfab