Hello All,
As some of you may be aware, the newly-released TS2014 (aka RailWorks) includes direct integration of Google Earth overlays in their route-building tool. This video on YouTube briefly shows how the feature works; the relevant section starts around 4:10. Long story short, this would seem to make it very easy to trace pretty much any feature from Google Earth quite accurately.
In early to mid 2012 I completed the first round of development of a plugin for SketchUp that I called 'RubyTMAP'. The purpose of this plugin was to create semi-transparent 3D basemaps that carried high-quality Google Earth images and also conformed to the Trainz terrain. The general concept was that you would position them appropriately in your route and then, while looking straight down through the overlay to the actual terrain below, you would be able to trace tracks & roads from the Google Earth image onto the Terrain. Obviously you could also use it to place buildings, trees, ground textures, or anything else.
The image below shows an example basemap, positioned in Surveyor, so you can see how it conforms to the terrain.
(image hosted by ImageShack)
The image below is a view looking through the basemap to the Trainz terrain, so you can see the clarity of the imagery that is possible; note that you can see the baseboard grid through the basemap.
(image hosted by ImageShack)
Although I was able to make this tool operational, there were some significant barriers to making it usable in the real world.
For these reasons (and others), I ended up shelving this project, and it has lain dormat since about May of 2012. Seeing the new feature in TS2014 has, howevever, rekindled my interest in RubyTMAP, and I am considering not only restarting this project but also taking it in a somewhat different direction.
Over the last year I have had some success in decoding the Trainz binary file formats, to the point where I believe I have enough information to actually create these files. Based on this, my proposed new direction is to make RubyTMAP a route-generation tool rather than just a basemap-generation tool, and to eliminate the dependencies on prior information from TransDEM.
The general work flow would be:
At this point I can already feel the self-appointed legal pundits starting to circle, so please let me say that I have no intention of debating the legal implications of this tool. Suffice it to say that, when I originally started the project back in 2012, I was able to consult directly with the appropriate people at SketchUp, who offered encouragement and basically left me with the understanding that there was no problem with what I was doing. To wit, my application fell under "fair use" rules because:
I also want to be very clear that I have not received any official endorsement from N3V regarding this project, nor any assistance with writing to their binary files. All my knowledge about the file formats is information I have worked out on my own.
Finally, I would like to briefly address the free/paid aspects of my plan.
The restrictions of the free version would (probably) be:
The paid version would be limited only by the practical limits of SketchUp; in my original testing I produced route chunks of around 150 baseboards with no problem at all. It would emit 5m or 10m terrain, and would allow basemaps to be placed on various user-defined layers. It would also include an 'Extender' Project type, meaning that you would be able to start a new route that automatically lines up with the edge of a previously generated route and could therefore be merged with it, which should allow the creation of very large routes.
My question to you all now is: Would such a tool actually be useful for route building, and do you have any suggestions past what I have presented here?
All comments are welcome. Based on the responses received, I will then determine whether or not to proceed.
Thank you.
Regards,
-Mike
As some of you may be aware, the newly-released TS2014 (aka RailWorks) includes direct integration of Google Earth overlays in their route-building tool. This video on YouTube briefly shows how the feature works; the relevant section starts around 4:10. Long story short, this would seem to make it very easy to trace pretty much any feature from Google Earth quite accurately.
In early to mid 2012 I completed the first round of development of a plugin for SketchUp that I called 'RubyTMAP'. The purpose of this plugin was to create semi-transparent 3D basemaps that carried high-quality Google Earth images and also conformed to the Trainz terrain. The general concept was that you would position them appropriately in your route and then, while looking straight down through the overlay to the actual terrain below, you would be able to trace tracks & roads from the Google Earth image onto the Terrain. Obviously you could also use it to place buildings, trees, ground textures, or anything else.
The image below shows an example basemap, positioned in Surveyor, so you can see how it conforms to the terrain.
(image hosted by ImageShack)
The image below is a view looking through the basemap to the Trainz terrain, so you can see the clarity of the imagery that is possible; note that you can see the baseboard grid through the basemap.
(image hosted by ImageShack)
Although I was able to make this tool operational, there were some significant barriers to making it usable in the real world.
- It only worked with maps that had been created by TransDEM, as it relied on information from that tool for initial geolocation.
- The overlays used terrain data obtained from within SketchUp, which often differs significantly from the data used to construct routes by other means (e.g. TransDEM). This resulted in the basemap contours sometimes being a very poor match for the terrain.
- Basemaps had to be positioned manually in Trainz, which was not an easy process since there is no clear demarcation between baseboard boundaries. To make that easier, I developed a (rather cheesy) system of guide sticks, but it was still a major pain.
- Trainz sometimes has difficulty positioning 'very large objects' so this made it even harder to align the images in the right place.
- It was difficult to place basemaps at a consistent height so their edges merged properly.
For these reasons (and others), I ended up shelving this project, and it has lain dormat since about May of 2012. Seeing the new feature in TS2014 has, howevever, rekindled my interest in RubyTMAP, and I am considering not only restarting this project but also taking it in a somewhat different direction.
Over the last year I have had some success in decoding the Trainz binary file formats, to the point where I believe I have enough information to actually create these files. Based on this, my proposed new direction is to make RubyTMAP a route-generation tool rather than just a basemap-generation tool, and to eliminate the dependencies on prior information from TransDEM.
- The new version would consist of a Windows application plus a Ruby plugin for SketchUp.
- Project management and generation of Trainz binary files would be handled by the Windows application.
- Gathering terrain data and imagery, and generation of the 3D basemaps, would be handled by the Ruby plugin running in Sketchup.
The general work flow would be:
- Start a new project containing 1 baseboard.
- Open the project in SketchUp and geo-locate the origin baseboard.
- Use the SketchUp 'Add Location' dialog to grab terrain data and imagery for the baseboard. Please note, this is a manual process and will be somewhat time-consuming.
- Based on the coverage desired, add more baseboards and grab data/imagery for them as well.
- Generate the 3D basemaps and/or save the terrain data.
- Return to the Windows application and use exactly the same terrain data that was used to make the basemaps to also generate 'mapfile.gnd', thus providing DEM terrain in Trainz and ensuring that the basemaps will properly match the contours of that terrain.
- Windows application also creates 'mapfile.obs' with a World Origin object and all basemaps correctly located.
- Windows application also creates 'mapfile.lyr' with all the basemaps on their own pre-locked layer, with initial visibility selectable.
- Other 'mapfile.xxx' files are simply blanks as would be created by Trainz itself.
- 'config.txt' is also generated containing proper World Origin coordinates and other standard information you supply.
- Import the lot into Content Manager, resulting in a complete Trainz route.
- Open the route in Surveyor, make the basemap layer visible, and start tracing out your route by looking directly down through the basemaps.
- When done, delete the basemaps layer.
At this point I can already feel the self-appointed legal pundits starting to circle, so please let me say that I have no intention of debating the legal implications of this tool. Suffice it to say that, when I originally started the project back in 2012, I was able to consult directly with the appropriate people at SketchUp, who offered encouragement and basically left me with the understanding that there was no problem with what I was doing. To wit, my application fell under "fair use" rules because:
- The re-use of the Google Earth images was substantially transformative in nature because they were reconstructed, not simply copied; and because they were semi-transparent.
- The images were applied to an object that was only usable within a confined environment (i.e. Trainz Surveyor), meaning that they would not be part of a 'public performance'.
- The locations of things like railroad tracks, roads and buildings cannot be copyrighted because they are physical facts, so tracing these things from a Google Earth image is not an illegal use of an otherwise copyrighted work.
I also want to be very clear that I have not received any official endorsement from N3V regarding this project, nor any assistance with writing to their binary files. All my knowledge about the file formats is information I have worked out on my own.
Finally, I would like to briefly address the free/paid aspects of my plan.
- There would be a free version of this tool with some (I think reasonable) restrictions.
- There would be a paid version that removes these restrictions, probably priced around $10-$15 US.
The restrictions of the free version would (probably) be:
- Maximum of 25 baseboards per generated route
- Only emits baseboards with 10m resolution
- All basemaps go on the same layer
The paid version would be limited only by the practical limits of SketchUp; in my original testing I produced route chunks of around 150 baseboards with no problem at all. It would emit 5m or 10m terrain, and would allow basemaps to be placed on various user-defined layers. It would also include an 'Extender' Project type, meaning that you would be able to start a new route that automatically lines up with the edge of a previously generated route and could therefore be merged with it, which should allow the creation of very large routes.
My question to you all now is: Would such a tool actually be useful for route building, and do you have any suggestions past what I have presented here?
All comments are welcome. Based on the responses received, I will then determine whether or not to proceed.
Thank you.
Regards,
-Mike
Last edited: