OnWorks favicon

arch2rad - Online in the Cloud

Run arch2rad in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command arch2rad that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



arch2rad - convert Architrion text file to RADIANCE description


arch2rad [ -n ][ -m mapfile ] [ input ]


Arch2rad converts an Architrion text file to a RADIANCE scene description. The material
names for the surfaces will assigned based on the default mapping or the mapping rules
file given in the -m option. A mapping file contains a list of materials followed by the
conditions a surface must satisfy in order to have that material.

For example, if we wanted all surfaces for blocks with RefId "thingy" and Color 152 to use
the material "wood", and all other surfaces to use the material "default", we would create
the following mapping file:

default ;
wood (RefId "thingy") (Color 152) ;

All surfaces would satisfy the first set of conditions (which is empty), but only the
surfaces in blocks with RefId "thingy" and Color 152 would satisfy the second set of

Each rule can have up to one condition per qualifier, and different translators use
different qualifiers. In arch2rad, the valid qualifiers are Layer, Color, Face and RefId.
A condition is either a single value for a specific attribute, or an integer range of
values. (Integer ranges are specified in brackets and separated by a colon, eg. [-15:27],
and are always inclusive.) A semicolon is used to indicate the end of a rule, which can
extend over several lines if necessary.

The semantics of the rule are such that "and" is the implied conjunction between
conditions. Thus, it makes no sense to have more than one condition in a rule for a given
qualifier. If the user wants the same material to be used for surfaces that satisfy
different conditions, they simply add more rules. For example, if the user also wanted
surfaces in blocks with RefId "yohey" with Colors between 50 and 100 to use "wood", they
would add the following rule to the end of the example above:

wood (Color [50:100]) (RefId "yohey") ;

Note that the order of conditions in a rule is irrelevant. However, the order of rules is
very important, since the last rule satisfied determines which material a surface is

By convention, the identifier "void" is used to delete unwanted surfaces. A surfaces is
also deleted if it fails to match any rule. Void is used in a rule as any other material,
but it has the effect of excluding all matching surfaces from the translator output. For
example, the following mapping would delete all surfaces in the Layer 2 except those with
the color "beige", to which it would assign the material "beige_cloth", and all other
surfaces would be "tacky":

tacky ;
void (Layer 2) ;
beige_cloth (Layer 2) (Color "beige") ;

If neither the -m nor the -n options are not used, arch2rad uses the default mapping file
"/usr/share/radiance/lib/arch.map". This file simply assigns materials based on color,
using the identifiers "c0" through "c255". Appropriate materials for these identifiers
are contained in "/usr/share/radiance/lib/arch.mat".

The -n option may be used to produce a list of qualifiers from which to construct a
mapping for the given Architrion file. If the -m option is used also, only those blocks
matched in the mapping file will be added to the qualifier list.


Architrion blocks are divided into about 6 polygons. The reference, opposite and end
faces must all be quadrilaterals (ie. four-sided polygons), though one or more faces may
disappear in certain degenerate cases. The bottom face will usually be a quadrilateral,
though it may be written out as two triangles if the face is non-planar or one triangle if
there is a degenerate side. The top face is treated the same as the bottom face.

Openings are currently handled using the antimatter material type. An antimatter material
called "opening" is defined that "clips" all faces for the current block, and patches the
edges of the hole with the material defined for the face "sill". If no rule is given
specifically for the sill face, then the most specific material (ie. the material in the
latest rule) for this block is used. An antimatter opening will not function properly if
there is another surface intersecting it, or rendering is attempted from within the
opening. Overlapping openings or openings with shared boundaries will also fail. There
is currently no support of Architrion "frame" libraries.

Naming of the output faces is based on layer number, reference id and output block number
(sequential from 1 to the total number of output blocks). If there is no reference id
name, the layer name is used (if available) instead of the layer number. If there is a
reference id number but no name, that is added as well. Names are truncated to the first
12 characters, so the ends of long names may be lost. Also, spaces in names are replaced
by underscores ('_'). Finally, the face id is added to the end of the block name for each
output polygon. An example identifier for a polygon is:


This would be the reference face of output block number 3155, reference id name "window
overhangs" in layer number 3.


To create a qualifier list for building.txt:

arch2rad -n building.txt > building.qual

To translate building.txt into a RADIANCE file using the mapping building.map:

arch2rad -m building.map building.txt > building.rad

To create an octree directly from an Architrion file using the default mapping and

oconv source.rad /usr/share/radiance/lib/arch.mat '\!arch2rad building.txt' >

Use arch2rad online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

Linux commands