This guide demonstrates how to build a TARDIS using BRL-CAD
, an open-source CAD software. The instructions explain how to create the base, walls, windows, doors, roof, and light fixture, with detailed explanations for each BRL-CAD command used.
To begin, install BRL-CAD
by following the instructions on their official website: https://brlcad.org. Open mged
(BRL-CAD’s geometry editor) to begin entering commands directly.
Define the dimensions of the TARDIS to ensure scalability and proper proportions. We will use the following variables:
set width 100 # Width of the TARDIS base in mm
set height 200 # Total height of the TARDIS
set wall_thickness 5 # Wall thickness
set roof_height 30 # Height of the roof section
set door_height 130 # Door height
set window_height 30 # Window height
We use the in
command to create geometric shapes. In this case, we use arb8
and rpp
primitives.
# Create a hollow box for the TARDIS body
in base.r arb8 -$width/2 -$width/2 0 $width/2 -$width/2 0 $width/2 $width/2 0 -$width/2 $width/2 0 -$width/2 -$width/2 $height $width/2 -$width/2 $height $width/2 $width/2 $height -$width/2 $width/2 $height
in hollow_base.r rpp -$width/2 -$width/2 0 $width/2 $width/2 $height
comb walls.c - base.r - hollow_base.r
in
: The command to create a new geometry object. Each object is given a name, followed by its type and parameters.arb8
: An 8-point Arbitrary Convex Polyhedron, ideal for creating a box with 8 vertices.rpp
: Right Parallelepiped, defined by two opposite corners, which is often used for rectangular prisms.comb
: Creates a combination (or group) of objects. Here, walls.c
is a combination that subtracts hollow_base.r
from base.r
to create hollow walls.We will add rectangular cutouts on each side for the windows and a larger cutout for the door on the front face. Each of these cutouts will also use the in
command with the rpp
primitive.
# Define the window dimensions and position
in window.r rpp -$window_width/2 -$window_width/2 $window_height $(window_height + 10) $wall_thickness $width
comb windows.c - window.r - base.r
window.r
: This is the name of the new object, which represents a window cutout.rpp
: Creates a rectangular shape for each window by defining the two opposite corners of the rectangular prism.comb
: windows.c
subtracts window.r
from base.r
to create a window space.
# Define the door dimensions and position on the front face
in door.r rpp -$width/4 -$width/4 0 $width/4 $door_height $wall_thickness
comb door.c - door.r - windows.c
door.r
: This object represents a door cutout.rpp
: Defines the rectangular door shape by specifying two opposite corners.comb
: door.c
subtracts door.r
from windows.c
to form a door space.The roof is a pyramid shape created with the arb4
primitive. A sphere will serve as the light fixture on top of the roof.
# Create the pyramid-shaped roof
in roof.r arb4 -$width/2 -$width/2 $height $width/2 -$width/2 $height $width/2 $width/2 $height -$width/2 $width/2 $height $roof_height
# Add a light fixture on the top center of the roof
in light.r sphere 0 0 $height+$roof_height 5
comb roof_light.c u roof.r u light.r
arb4
: A four-point arbitrary convex polyhedron, ideal for creating the triangular roof shape by specifying four vertices.sphere
: Creates a spherical object; here, it’s used to create the light fixture at the roof’s peak.u
: Union operator. In roof_light.c
, it unites roof.r
and light.r
into a single combination.BRL-CAD allows adding color to materials with the mater
command.
# Adding color
mater base.r "plastic" "blue" 128 128 255
mater light.r "glass" "light" 255 255 255
mater
: Defines material properties and color for objects. Here, plastic
and blue
are used for the base, while glass
and light
are used for the light fixture.128 128 255
: RGB values representing the color blue.