Click here to Skip to main content
Click here to Skip to main content
Go to top

My First Train Set

, 3 Sep 2013
Rate this:
Please Sign up or sign in to vote.
A (virtual) wooden train set for kids of all ages

Please note

This article is an entry in our AppInnovation Contest. Articles in this sub-section are not required to be full articles so care should be taken when voting.

Game for All-in-one table computers.


One of my favourite activities my two boys and I did when they were young is play with their wooden trains. Building the tracks and running the trains around the layout gave us many hours of fun.


My First Train Set is a Table computer game for children of any age. It is a table-top version of wooden trains, popularized by brands such as Brio® and Thomas the Tank Engine®.

One or more participants use touch to drag, rotate, and interlock pieces of wooden track and trains onto a virtual building surface. When assembly is complete the user can watch their train ride the rails of the track layout that they designed.

My First Train Set has some benefits over the real thing:

  • no small parts or choking hazards
  • takes much less space
  • multiple players can collaborate easily
  • no mess to clean up
  • the layout persists between play sessions

The target age group is 2 to 6 years. This software category is sparsely populated, in part due to the lack of suitable hardware for children with immature dexterity and motor control. The software is educational and encourages/teaches:

  • manual dexterity
  • cooperative play
  • basic physics
  • patience
  • geometry
  • colours

User Interface

Although it will work in any configuration, the best user experience is achieved by laying the computer on a table or floor. The user views the building surface from overhead (a birds-eye view). At the edges of the playing surfaces are pieces of track such as straight pieces, curves, bridges, and train cars. The track pieces are dragged to the playing surface by touch and the ends of track pieces snap, interlocking like pieces of a jigsaw puzzle. Likewise, train cars snap together magnetically.

Platform Suitability

The Horizon platform is ideally suited to this application.

  • Unlike a tablet device, the 27" screen allows the user to view a much larger portion of the playing surface at a time. The whole layout can be viewed easily on the large screen.
  • The touch surface is ideal for young children, who lack the dexterity to operate a keyboard or mouse.
  • A joystick could optionally be used to control train speed in a reactive manner.
  • Placed on a floor or on a small table, more than one person can sit around the device to simultaneously collaborate on a layout.
  • Having a battery allows the layout to be moved around the room, rotated on the floor, or carried by mom or dad to share with friends and family.

Achieving Success

In 2012, I successfully submitted a working app on time in round 2. I believe I can repeat this success.

When planning for development of an app on an ambitious schedule such as this, it is important to break the project into realistically achievable goals, and to determine which features are musts for the original release;  which are at risk of delaying the project; and those for which the risk is an acceptable one.

These features are must-have features for the initial release:

  • 2D overhead view building interface
  • Photorealistic track pieces
  • Track and train placement using touch gestures
  • 2D overhead view animation of trains

Development of these features can be broken down into modular components.

  • Create a data representation of track and train pieces
  • Devise in-memory and serialized formats for layouts
  • A graphical representation of pieces to/from the in-memory storage
  • User interaction (building) including dragging, placement, rotation of pieces
  • Enhancement of views to photorealistic rendering
  • A physics engine that determines how trains interact with tracks: acceleration; movement along the track; rotation around curves; collisions; etc. 

These features would greatly increase the appeal and overall user experience, but may not be realistic for the initial release; however they will be implemented once the above features are complete, ideally in the initial release:

  • Photorealistic lighting and shadow effects in all views
  • 3D overhead view building interface (like 2D but with some lighting and shadow detail.
  • Ability to view layout in 3D from any camera angle (still)
  • Animated 3D view of layout



While I am very experienced with C#, GDI+, .NET, physics, and geometry, the world of real-time 3D visualisation and rendering will be new to me. It would be unrealistic to expect to learn the intricacies of DirectX or OpenGL in such a short amount of time, even with .NET wrappers such as SharpDX.

Instead it would be prudent to use a readily available 3D abstraction kit or game engines. I am currently assessing engines well suited to the project, including Axiom Engine and Unity. Adoption of a cross-platform engine could aid in possibly porting the software to other platforms in the future.

Track layouts will be serialized to an XML document that can be shared with other users.

3D modelling will be performed using SketchUp.

Stock photography will be used for textures.

UI components will be professionally designed.


Brio is a registered trademark of BRIO AB.

Thomas the Tank Engine is a registered trademark of Gullane (Thomas) Limited.

Wooden train photograph is used with permission under licence.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Yvan Rodrigues
President Red Cell Innovation Inc.
Canada Canada
Yvan Rodrigues has 25 years of experience in information systems and software development for the manufacturing sector. He runs Red Cell Innovation Inc./L'innovation de Globules Rouges, a consulting company focusing on efficiency and automation of manufacturing and business processes for small businesses, healthcare, and the public sector. He is a Certified Technician (C.Tech.), a professional designation granted by the Institute of Engineering Technology of Ontario (IETO).
Yvan draws on experience at Mabel's Labels Inc. as Manager of Systems and Development, and the University of Waterloo as Information Systems Manager.
Yvan supports open-source software. He is a committer for SharpKit (C# to Javascript cross-compiler) and WebIssues (Issue/Ticket Management System), and contributes to MySQL, Ghostscript, iTextSharp, Bacula, FreeBSD, MonoTouch, and Mono for Android.
Yvan's consumer-focused apps can be found in the Windows Store, Apple App Store, and Google Play marketplace.
Follow on   Google+   LinkedIn

Comments and Discussions

QuestionHow's app development going? Will you be submitting on time? PinstaffKevin Priddle24-Oct-13 5:26 
GeneralMy vote of 5 PinmemberHezek1ah23-Aug-13 1:56 
AnswerRe: My vote of 5 PinprofessionalYvan Rodrigues23-Aug-13 3:22 
AdminThanks for entering the Intel AIC 2013! PinstaffKevin Priddle21-Aug-13 14:18 
AnswerRe: Thanks for entering the Intel AIC 2013! PinprofessionalYvan Rodrigues23-Aug-13 3:23 
GeneralMy vote of 5 PinprofessionalAbhishek Nandy21-Aug-13 3:32 
GeneralMy vote of 5 PingroupGrasshopper.iics21-Aug-13 1:34 
AnswerRe: My vote of 5 PinprofessionalYvan Rodrigues23-Aug-13 3:24 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web02 | 2.8.140916.1 | Last Updated 3 Sep 2013
Article Copyright 2013 by Yvan Rodrigues
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid