November 25, 2025
Description
While this project launched during the holiday season, don't let that fool you—this isn't just a Christmas decoration. This will grow to be a living, breathing railway system that I'm committed to developing and expanding over time, both through my own designs and with contributions from the community. Think new locomotives, freight cars, track variations, and many railway equipment, not to mention decorative elements to bring your layout to life.
I'm releasing the locomotive first, but I want you to know that straight and curved track sections are already on their way and will be available in just a few days. After that comes the coal wagon, and more will follow regularly. Think of it like an advent calendar... except I won't be releasing something new every single day! I have to work too…
This project is modular—just like nearly everything I design. It's built to grow with you.
I'm excited to share that external contributors are already developing elements for this system, and they'll be releasing their designs independently. I'll link to the most interesting additions as they appear.
I'm confident that with a bit of patience, anyone can build this railway system.
I believe it would be an intriguing concept to incorporate this train into a holiday village display or integrate it with existing city-themed construction sets
If you opt for a more traditional form, such as dioramas, they always look excellent as Christmas decorations. The scale used is Gauge 1 (more on that in the following text)
The coal wagon is already available
The passenger wagon is already available. Both are modular, which means the chassis is the same and is easily swapped.
For more models, keep an eye on the CyberExpress Collection
A Note About Cyberbrick: If you already have a basic Cyberbrick kit, you'll have most of the components you need for the locomotive; especially some of the more expensive ones.
Materials: While I'll provide some guidance on recommended printing materials, you're free to choose whatever filament type and colors work best for you. In fact, an interesting approach would be to print everything in a single color and then paint it manually or with an airbrush, just like traditional scale models. I have in my mind to make one of those.
*** IMPORTANT NOTE: This modular panel is compatible with ALL Cyberbrick models, not just the CyberExpress. ***
This is a modular Control Panel, designed as a flexible alternative to the standard remote control. The base features empty areas that are prepared to receive future module updates and expansions, offering a level of flexibility that a typical single-piece remote control cannot match.
The base plate is equipped with holes designed to house 10x3mm round magnets, allowing for a fully customizable layout. Even the larger modules typically require no more than two magnets for a secure fit.
The initial set includes the most fundamental components required for operation:
The Rails: Regarding the rails, they are available in a separate project “Tracks for CyberExpress” to keep things more organized. Currently, straight tracks and 30º curved tracks have been completed, which allows for creating an oval layout.
Let's build something amazing together. All aboard!
This test bench demonstrates the locomotive operating at different speeds, both forward and in reverse (the latter being slower). The characteristic "clickety-clack" sound typically heard on trains is recreated.
The model also features a rod-driven transmission system. This effect can be more or less pronounced depending on build and print quality. A particularly interesting phenomenon occurs at the dead center position of the wheels—the extreme point of the piston stroke where the force through the connecting rod aligns with the axle centerline, producing no rotational torque on the drivers (on real trains, this one has the motor on the center wheel.
Since none of the wheels can have counterweights and the locomotive lacks sufficient mass to overcome this effect through inertia alone, it's sometimes necessary to reverse direction briefly before moving forward (or vice-versa) to get unstuck from dead center, and check if the rods are misaligned. Real steam locomotives solve this by arranging connecting rods so that dead centers occur out of phase between cylinders, but in smaller models without such systems, this dead center challenge becomes apparent.
Having a blast with my son, non-stop! I totally forgot to put the coal wagon online. The Poops were his idea, and he’s thinking big: he suggests using them to feed the engine's fire... He might actually be onto something :)
The core of this project is a modular, 3D-printable train system driven by a compact 2-axis motor using the Cyberbrick kit. The goal is to create a versatile platform capable of supporting both modern and vintage locomotive aesthetics. with endless extension capabilities
This is a truly modular system, designed to grow and adapt to your creative vision.
Rolling Stock: Both locomotives and wagons are built around a common base platform. The chassis remains unchanged across different models; only the body shells vary. This means you can mix and match, customize, or even design your own car bodies while using the same proven undercarriage.
Track System: The track sections are inherently modular by nature, but there's a special feature I'm particularly excited about: I've taken advantage of the plastic construction to use magnets for assembly. The ease of connection is excellent; the tracks align themselves perfectly thanks to the magnetic orientation, creating seamless joins every time.
However, this magnetic system comes with one critical consideration that made me hesitate initially: polarity matters. For the system to work correctly, magnets must have the correct polarity. If they're reversed, track sections will repel each other instead of connecting.
The tracks will be made available soon on a different project link
There are other modular aspects to this project, but it doesn't make sense to discuss them yet since those elements aren't available.
Track Gauge: Standard Gauge 1 (45mm)
This uses the well-established Gauge 1 track standard of 45mm (1¾ inches) between rails. This means you'll be working with familiar geometry and can take advantage of the extensive range of commercially available Gauge 1 components, including track, switches, wheels, and other accessories that have been refined over more than a century of model railroading tradition.
For the locomotive, here you have the overall dimensions
Any machine can print this locomotive, from the A1 Mini to the H2 models. The use of an AMS (Automatic Material System) is not mandatory, as you can print with a single color and then paint it with acrylic paint—the same kind used for manual painting of figurines and models. In this case, choose to print in light gray, and to avoid wasting so much paint, apply a brush-on primer (non-spray). I can say that the final result is fantastic and superior to the model printed directly in color. Give it a try and then show me the results.
For those with AMS, the print profile is prepared for a specific color combination, which you can alter to your liking. Even with AMS, you are free to remove the parameterized colors from the models; the same applies to those without AMS, who in this case must proceed with this alteration.
This is a structural part, especially for the external elements of the locomotive. The print profile contains all the necessary elements for its printing, which should be in PLA Basic or PLA+CF. Remove the support structures with care; do not force them, as the side walls are thin and can break at the layer interface. PLA+CF is especially brittle. Be careful when handling this element, as there are zones that will be used to glue other parts. Therefore, avoid placing your fingers on those areas to facilitate gluing later. You can use nitrile gloves when handling the parts.
The structural piece of the locomotive. It is the part that will support all loads, where the wheel mounts, motor, PCB, and all remaining components will be attached. This partly explains its more robust structure, which is shared by both the locomotive and, to a certain extent, the wagons. This part will contain embedded M2 square nuts; as such, expect a print pause relative to this part. The first pause will be for this piece, where you must insert the 12 square M2 nuts. Preferably, this part should be printed in PLA Basic or PETG. The parts with pauses were placed near the outer edge of the plate to facilitate the placement of the various elements during the respective pauses.
The piece that will serve as a support for the on/off button. As the name indicates, it is a sliding piece. It will be used whenever you wish to charge the battery, by sliding it out of the locomotive cabin. In terms of printing, there is nothing noteworthy to report.
Similar to the "Power Button Drawer," this piece is also sliding. However, it shouldn't be necessary to remove it as frequently... it exposes the control module and serves only to cover it, making the locomotive cabin aesthetically more interesting, but above all, it facilitates the printing of the locomotive cabin.
This is the piece where the wheels will tighten. It will also have a pause, being the second one on this plate. This piece should be printed in PLA Basic or PETG given that it is a part subject to load, and furthermore, a good finish on its interior is critical; above all, dimensional accuracy is key—the wheel must rotate freely inside it. If you notice this is not the case, you can compensate in increments of 0.05mm in the "XY Hole compensation" parameter, though this shouldn't be necessary. At the moment of the pause, insert a square M2 nut into each of the 4 Idler Wheel Mounts. Avoid touching the top of this piece with your fingers, which is where the tip of the wheel screw will sit.
This piece does not have the dimensional demands of the "Idler Wheel Mount," being used primarily to fix the motor, allowing a little functional play in the motor and clear clearance for the traction wheels. Therefore, if you wish, you can even print this piece in a material other than PLA Basic. In this case, there is also no need to apply embedded elements. Once again, you can use nitrile gloves when handling the parts.
This piece has some particularities in terms of its printing, where the "seam" left when changing layers is disguised. It is for this reason that you will find filaments with the same color but with distinct configurations with the suffix "Less Seam". Another aspect is the layer height, which was reduced to 0.12mm, which should allow for a better finish. Ideally, this piece should be printed with a 0.2mm nozzle; if you have one, this is a good moment to use it. If you verify that the screw entering the wheel does not rotate freely, you should proceed in the same way indicated for the "Idler Wheel Mount" (compensate in increments of 0.05mm in the "XY Hole compensation" parameter), though this shouldn't be necessary.
These parts must be printed in TPU. The softer the TPU, the better. In the case of Bambu Lab filament, the most common is 85A. However, there are some with Shore 60A which is ultra-flexible, but also more difficult to print and quite a bit more expensive, if you have any lying around like the famous NinjaFlex. The print parameters are well-adjusted for Bambu Lab's 85A. You will notice that the tires are not printed at the same time, but one at a time, thus avoiding "oozing" which is quite common with this material. This material, even if freshly opened, must always be subject to a drying time of no less than 12 hours to obtain the best results. If you don't have a system that can do this for you, and if you have an enclosed printer (X1, P1, or H2), I remind you that it can be used to dry the material. There are other methods; however, I won't refer to them as one of them presents considerable dangers if the process is not correctly monitored. I take this moment to mention that the tires must be inserted onto the wheels. The tires for the motor wheels are wider and are quite tight to prevent slipping; however, if you heat them a little after printing, they become more flexible, facilitating their placement.
This part is, without a doubt, the one that gave the most problems in terms of development. How can something so simple bring so many problems? The answer is simple: relatively fast mechanical movements combined with considerable effort in plastic are not the ideal mixture. From unexpected flexing to jams, a little bit of everything happened. Since I don't want to bore you with technical questions, let's get to what matters. In the case of the rods, it is important to use the material with the highest rigidity you can find. Ideally, it would be metal; however, I know most of you wouldn't have a way to perform laser cutting. Thus, a material that serves relatively well is PLA+CF or another material you consider brittle (fragile) because it will be hard. You can use PLA Basic and it will probably go well; however, be attentive during the first moments of operation. When the break-in is done, look for possible flexing in the rods, which can occur at the dead center or when the locomotive changes direction. Fiber-loaded materials will be the most indicated option in this case. I opted to put PLA+CF in the print profile, however, you are free to change it. If in the meantime I manage to improve the current solution, it will be easy to proceed with updating the rods.
This is a functional and critical piece for the operation of the locomotive. Its alignment will determine if the main rod functions correctly. So, ensure that when you are gluing it, you do so according to the video (which, by the way, will be different from the version now available; this one presents a deeper slot, which facilitates alignment and gluing). It is a piece in PLA Basic; in this case, it matters that the friction coefficient is low. You will even verify in the video that I apply a little lubricating oil. You can do the same if you still have some lying around that came with the printer and is used for lubricating the 3D printer guides; however, as said in previous situations, it shouldn't be necessary.
This piece allows creating a contact point between the locomotive and the first carriage. The magnet, despite being small, should offer the necessary force to pull the train. At the limit, if that doesn't happen, tell me and I can create a version to have two stacked magnets. There will be a pause to insert the 5x3mm diameter magnet. In this case, as referred to in the video explaining the assembly, it will be better to place a drop of glue between the magnet and the piece to avoid it being attracted by the print head—something that will happen at least in the case of H2 range printers. Let the glue cure until resuming printing; 3 to 5 minutes should be sufficient in the case of cyanoacrylate glue. This piece can be in PLA, PETG, or other, except TPU.
This piece must be inserted into the locomotive before placing the cabin. Similar to many others, it will slide inside a dovetail shape allowing play in the movement between carriages. When you are performing the assembly, slide the M2 screw that is part of the "Coupling Touching Point" into this slot.
A piece that, despite being aesthetic, is also functional; it is what will allow the placement of the locomotive's front lights. The "Cowcatcher" is removable, again through a dovetail-shaped fitting, whereas the lights will be permanently fixed to this piece via glue. Therefore, the care relative to this piece is the same that applies to all others where it is necessary to apply glue. The material can be PLA or PLA+CF. In the print profile, I opted to place it on the plate with the parts being printed in PLA+CF, but you can move it to the first plate.
These pieces, despite being small and quick to print, saw their base print profile significantly altered, especially in parameters relating to speed, but not only that. This alteration is necessary to try to maintain maximum transparency, something that in such a thin piece is relatively simple. I still considered changing the Build plate to one without texture; however, I ended up not doing so because I know that many of you might not have one. If you have a Smooth type texture plate, this will be a good time to use it.
These are the pieces that will be glued to the Cowcatcher. However, before doing so, you must:
As with all parts where it is necessary to use glue, certain precautions are needed so that the bonding happens as well as possible. Regarding what you will see in the video, this piece was also altered to allow the gluing to happen in an easier way. In these cases, the parts will also be printed one at a time, just as happened with the TPU tires. The material for this piece can be basic PLA or PLA+CF.
Pauses Summary:
(*) on the top, in black is a finished part with a magnet on it to facilitate the insertion
You can also opt to print each of the parts on its own plate, one at a time; this might reduce the number of filament swaps.
A decorative piece, but also structural, as the battery is housed inside it. This piece contains 3 more elements that must be glued, which are:
The assembly sequence should be the one shown in the assembly video; however, if you opt not to follow the video, I advise that the elements mentioned above be glued at the end, as handling while assembly is being done can displace or break one of them. regarding the SmokeStack, it is likely to be updated in the future to accommodate an ultrasonic device for steam creation, which will simulate smoke. However, this is something that is not yet possible due to incompatibility with the voltage used in the Cyberkit module. This piece was optimized to reduce filament swapping to a minimum. Those who have printers with 2 print heads will have an added advantage in terms of print speed. The quantity of supports was reduced to a minimum. There is, however, a structure that enters the piece up to its top which should be removed with care. I suggest this be removed with some patience, flexing from one side to the other until the contact interface with the piece separates. In case a little of the support structure remains (unlikely), make sure the lithium battery can enter in its entirety. This piece can be printed in PLA Basic or PLA+CF, noting that the latter gives a very good finish but is also more fragile. A good suggestion would also be the use of PLA Metal.
This piece is composed of others, being:
The Roof will be glued to the cabin, as it is an aesthetic element; the other components, being functional, are removable by sliding. The locomotive cabin is almost entirely an aesthetic element, if we remove the on-off button located under the Roof. Being a colored piece, I opted to place it on a different plate from the "Boiler" to reduce filament swapping. What was said regarding the "Boiler" also applies to this piece. This piece can be printed in PLA Basic or PLA+CF, noting that the latter gives a very good finish but is also more fragile. A good suggestion would also be the use of PLA Metal.
The correct orientation of the locomotive motor is important, as is the joystick that controls the locomotive. Since I know it can be complicated to get it right, I created 2 JSON profiles for programming the Cyberbrick modules; one for normal movement and another for inverted movement, so the assembly will always be correct and you'll only need to load the most suitable profile.
If you find that the speed is too high or too low, I can create more profiles if you don't know how to do it, although the process is quite simple. However, I remind you that it's always possible to reduce the speed down to the stopping point, but it's not possible to increase it beyond the programmed maximum; I'll also take this opportunity to explain that the motor has relatively high torque, but it doesn't work miracles - from a certain speed onwards it will lose torque and will stop. If you have many wagons and they are heavy, it might be interesting to create a program that supplies more electrical current to the motor so that it has the strength to pull the load.
License:
Standard Digital File License