Creating Lego models with LDraw, Part 3: Complex positioning and renders

Back to overview

Are you into Lego? In this tutorial series, LDraw veteran Nathanel Titane introduces us to the different LDraw tools and shows how you can easily construct your own LEGO models and publish them to Sketchfab!

There are four articles in this series:

Now that you’ve gotten acquainted and have been using the LDraw system for a while, we gather you are now familiar with the handling of parts and their positioning throughout a simple model assembly.

Getting pieces together to assemble a component of what will be an eventual complex build is a fairly simple matter (assuming you’ve adequately planned out how you want the model to look and feel prior to doing so), by either prototyping a physical or virtual model beforehand.

Once you’ve laid out your workload, the process becomes almost natural after a few demanding projects, and is quite the fulfilment once it is accomplished.


Now, to get matters into hand, you need to understand how positioning is handled within a model and how the selection of the parts within the sub-model assembly you will be handling, affects the overall x y z coordinates and calculations done by the editor (in this case LeoCAD).

This is important for you to get a glimpse of how you want to order a sub-model’s so called dependency to another, and how it will be positioned in relation to the overall project.

From here on in, please understand the word ‘transformation’ as ‘translation’ or ‘rotation’ of a part or group of parts unless explicitly specified otherwise. ^_^

From the get go, LeoCad defaults its transformation type to relative – understand relative as in one or more selected part(s) relative to another. On the other hand, you can easily switch out the transformation mode to absolute, hence all transformations will be done relative to the overall x y z coordinate system that is defined by the virtual space you are working in.

When in relative transformation mode, selecting individual parts or a set group of parts as a whole, the transformation will affect each part independently from its group setup or selection. In relative mode, you are able to modify the part’s placement and rotation no matter how it is placed on a model, without the need to disassemble or modify the model’s current setup. This is especially important in understanding when rotating elements as they will not rotate as a whole group in this case, but each element will rotate on its own individual axis in relation to the overall selection that will also be rotating relative to the virtual space.

Ideally, when handling groups or parts to be rotated, make sure to set the rotation method to absolute to avoid any weird results! ^_^

As far as the actual selection method goes, when handling a single part on its own, LeoCAD defaults the part’s x y z handle to its center or predetermined handle position, according to the part’s geometry.

If you are to select two or more parts, the last part selected will become the reference point for the transformation. If you are to generate a group, selecting a part within that group will make it the reference point for the group transformation as well.

What you need to look out for is the actual selection color: the part that is actively referenced by the editor will be highlighted in blue and will serve as the transformation handle.

As you are building the separate components of your model, keep in mind that the 0 0 0 coordinate for a starting element part is essential. It will greatly improve the overall manoeuvrability of elements in your build, given that, you will always have a relative origin somewhere within the sub-model you can depend on for positioning.

As a general rule, I start my sub-model (or component) by making sure that one of the hinges or joints that will serve as a critical transformation element can be accessed and moved independently, and if possible, positioned at the 0 0 0 origin.

Some components will of course not be as easy to plan out or as simple to set up, especially when trying to abide by the strict 0 0 0 origin guideline. In that case, make sure to have a planar or perpendicular reference for parts to always have a ‘straight line’ reference to position your component.

This means, that if your model has some awkwardly shaped elements or sub-models in reference, make sure that you can set it up in a way to have some kind of linear brick assembly, be it vertical or horizontal, that’ll enable you to reference the transformation. If not (and I can only stress this so very much – from personal experience…) you will easily get lost within the multiple translation and rotation steps (WHICH ADD UP!) and you might not entirely be sure of how many degrees or LDUs you might have rotated or moved that element beforehand.

Tip: This bit of information will most definitely save you quite the bit of tears and frustration from messing up the alignment on a tranformation: the use of any bar-like part (the ‘4L lightsaber blade’ bar to my preference), that has a 1×1 x y or y z cross section will enable you to both pinpoint exactly where the rotation axis is, through any complex assemblies, and will also help you in actually rotating the element which could be located in any awkward spot, provided you select the bar element last as specified earlier on.

This is essential for future model updates and/or upgrades as it’ll help you substitute parts or whole models easily without worrying too much about that exact angle you put it at, be it 2 weeks, 5 months or 7 years ago…

All that being said, you still need to experiment and break some rules to get the best result possible when setting your model or project up. Whether it be that you enjoy giving it the coolest pose possible or simply want it set up in a clean and proper manner (the way I enjoy presenting mine). You will need to give these tips a quick run to make sure not to get lost or frustrated when putting your project together for final reveal.


Prior to Sketchfab, pictures and renders were, (and ultimately still are) the best means to share your work and show it to the masses. Unless you are in contact with people who also use the LDraw system and would be able to use a real time renderer (LDView… wink wink) to view your work locally on their machine and provided you share the actual model file… there haven’t been too many other options around.

As stated in the previous chapters of this series, the LDraw specification is a great example of how a file type can be ultra flexible in how you handle it and what you can do with it.

In regards to rendering your models, you can pretty much do as you please, for as long as you’re either using an LDraw specific application or editor that will be able to handle outputting your model into images. The other possibility is to export your model to a more common 3D file format (.obj + .mtl, .3ds, etc.) and either use the model as is or tweak it, rig it, position it or even animate it before producing the renders you would like to showcase.

The latter does require the expertise and experience linked to creating advanced 3D content and knowing the adequate rendering techniques related to the applications you might be using (3D Studio Max, Cinema 4D, Blender and many others…)

In my honest opinion, and as far as my experience goes with having tested and/or used (for some time or indefinitely) most of the available LDraw utilities, LDView is the cream of the crop when it comes to rendering. Its ease of use make it a very reliable tool do simply view and render a model, or go in depth and thoroughly examine a model from various points of views and angles, enabling you to validate geometries, parts usage and assemblies, by cutting through the model or displaying it in wireframe. You can display the various sub-models using its multi model parser and even debug bad ldr and mpd syntax in case you ever manually edit your files.

LDView handles real-time 3D via OpenGL, where you can actively load and view your model as you build it or output a specific point of view or angle shot as a static render to use elsewhere: the possibilities are endless!

I personally use the command line ‘ldview’ utility (!=’LDView’ which is the GUI version of the utility) and have it set up through a script to batch render all my needed angles and standard POVs for my models, as I create new entries or update old ones. You can tailor LDView to your needs, from lighting to cameras, passing by the outlining of your model’s rendering or even the shading type or brick spacing (for that realistic feel) to give it any kind of mood you’d like the image of your work to propagate.

I hope you have fun looking into all these new technical tidbits, and I really do look forward in having your read em next time. Stay tuned for part 4: Advanced editing and Sketchfab uploads!

LEGO® is a registered trademark of the LEGO Group. LDraw is a trademark owned and licensed by the Estate of James Jessiman.

Reproduced with permission from Nathanel Titane’s blog. Find the original article here:
Creating Lego models with LDraw, Part 3: Complex positioning and renders

About the author

Sketchfab Team

Leave a Reply

Your email address will not be published. Required fields are marked *

    Related articles