(overview)=
# Overview of HyperVehicle
The HyperVehicle package employs a component build up approach.
Using the core component types, a wide range of geometries can
be constructed. While there is an upfront cost associated with
constructing a good parametric model, the generalised nature of
HyperVehicle allows you to programmatically define relationships
between geometric components.
## The HyperVehicle Workflow
Before diving into the component definitions, this section provides
an overview of the HyperVehicle workflow, and how vehicle
geometries are created.
A geometry is constructed by combining a collection of *components* together.
Each component type of `hypervehicle` inherits from the {py:class}`.Component`
class.
Once the components of a geometry are defined, they can be added to an instance
of the {py:class}`.Vehicle` class, which acts as a container for multiple
{py:class}`.Component`s. Components can be added to a `Vehicle` object using the
{py:meth}`.Vehicle.add_component` method. The {py:class}`.Vehicle` object offers
many useful features and methods, allowing you to name a vehicle, name individual
components, apply transformations, estimate the vehicle's inertial properties, and
more.