Json2ttb

json2ttb is an external tool for Railway Operation Simulator which allows the user to speed up the creation of complex timetables.

json2ttb
Original Author(s)Daniel Gill
Initial release2021
Stable release
1.3.5 / 2023-07-03
Written inJava
Available inEnglish
TypeSimulation
LicenseGNU Public License v3
Websitehttps://railway-op-sim.github.io/json2ttb/

The program works by parsing a user-written json file, which is then converted to a .ttb file which can be used in within ROS. The structure of the json file is in such a way that you define a service template, which can then be iterated upon and copied over several instances, which can have non-iterative references, descriptions, times and train data.

Key Features

  • Allows for unusual repeats of services.
  • Create templates of service data and use them for several services.
  • Change the reference and description of single repeats.
  • Allows for creating shuttles without using shuttle syntax.
  • In most cases, quicker than writing timetables in ROS.

What json2ttb cannot do... (yet)

  • Does not simplify writing individual services.
  • No current support for the ROS repeats (e.g. R;30;2;2), repeats are done in a different way.

JSON Example

Below is a small excerpt of the json file which can be parsed by json2ttb. This example is taken from the timetable for Sheffield East.

{
    "ref":"1R50",
    "description":"SHFF AVOIDING",
    "startSpeed":80,
    "dataTemplate":"C222/0_5",
    "increment":1,
    "events": [
        "23:46;Snt;55-73 55-72",
        "00:04;Fer;28-24"
    ],
    "times": [
        {"time":"06:10","ref":"1R50","description":"Nottingham to Liverpool Lime Street","dataTemplate":"C158_2"},
        {"time":"06:14","ref":"5C14","description":"Etches Park Sdgs to Sheffield"},
        {"time":"07:00","ref":"1F00","description":"Kettering to Sheffield"},
        {"time":"19:10","ref":"1F60","description":"St Pancras International to Sheffield"}
    ]
},
{
    "ref":"1C23",
    "description":"Sheffield to St Pancras International",
    "dataTemplate":"C222/0_5",
    "startSpeed":80,
    "increment":1,
    "events": [
        "07:53;Snt;28-23 29-23",
        "08:11;Fer;56-73"
    ]
}