Keywords:
Summary
This demo shows how a component of an object can be assigned motion. In this case, the rotor blades on a helicopter are put into motion using the Flexible motion model. In addition, this demo uses temporal integration on the focal plane (see the TemporalIntegration1 demo for more info) to capture the motion blur on the moving blades.
Related Materials
The following demos, manuals and tutorials can provide additional information about the topics at the focus of this demo:
-
Related Demos
-
The SubObjectMotion1 demo.
-
The FlexMotion1 demo.
-
-
Related Manuals
-
Related Tutorials
-
N/A
-
Details
The key aspect of this demo is associating motion with a component of a single object without the need to break the object into multiple objects to associate the motion through the traditional instance assigned motion mechanism. Motion can be associated with any "part" of the object as long as it is a "group" entity in the input OBJ filename.
In addition to showing how to associate motion with a part, this demo shows how to change the materials assigned to a part and how a part can be disabled.
Important Files
Scene
All of the important scene details are contained in the GLIST file that
imports the helicopter (see geometry/demo.glist
) and positions it within
the scenes. The relevant <object>
section is included below:
<object>
<basegeometry>
<obj>
<filename>helicopter.obj</filename>
<assign name="paint" id="2">default</assign>
<properties>
<matid>1</matid>
<part name="BLADES" enabled="true">
<motion type="flexible">
<locationengine type="fixed">
<location frame="scene">
<x>0.0</x><y>0.0</y><z>0</z>
</location>
</locationengine>
<orientationengine type="spin">
<data source="internal" datetime="relative" frame="scene" delimiter="," axis="0,0,1">
<![CDATA[
0,0
10.0,314.15
]]>
</data>
</orientationengine>
</motion>
</part>
</properties>
</obj>
</basegeometry>
<staticinstance tags="helicopter1">
<rotation>
<cartesiantriple><x>0</x><y>0</y><z>1.5707</z></cartesiantriple>
</rotation>
</staticinstance>
</object>
The important part of the configuration is the optional <properties>
description. In this example, we modify the property of the BLADES
part in the original helicopter.obj
file. The part name corresponds to
a group in the OBJ file (groups are started and named using lines that
begin with g
, in this case g BLADES
). Inside this <part>
, we define
the motion using the
Flexible Motion model.
We don’t want to change
the location of the part, but we do want to make the orientation dynamic.
In this case, we are using the Spin orientation engine, which allows us
to specify an angular rate (about a supplied axis) as function of time.
In this case, the rate at relative time = 0 is 0 radians/second and at
relative time = 10 seconds the rate is 314.15 radians/second (or about 50
rpm). The acceleration between time = 0 and 10 seconds is linear.
Tip
|
The enabled attribute for any <part> can be set to false to
disable a given part (make it disappear).
|
Sensor
The focal plane is setup with a readout rate of 1 Hz and the integration
time set to 0.005
seconds (5 ms).
Setup
Single-Frame (Still) Simulation
To run the single-frame simulation, perform the following steps:
-
Run the DIRSIG
demo.sim
file -
Load the resulting
demo-t0000-c0000.img
file in the image viewer.
Multi-Frame (video) Simulation
To run the multi-frame simulation, perform the following steps:
-
Run the DIRSIG
video.sim
file -
Load the resulting
demo-t0000-c0000.img
,demo-t0000-c0001.img
, etc. files in the image viewer.
Results
Single-Frame (Still) Simulation
The single-frame simulation produces a single image frame. This single frame is acquired at t = 1 second, to the blades have started spinning. Due to the temporal integration, the blades are blurred.

Multi-Frame (video) Simulation
The imaging instrument is setup to use the "file per capture" output schedule. As a result, the simulation produces 23 separate image files for the 23 captures. The animation below was created from these 11 frames.
