procedural vessel hull generation - tu delft

60
Procedural Vessel Hull Generation Version of February 2, 2015 Nathan Mol

Upload: others

Post on 21-Apr-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Procedural Vessel Hull Generation - TU Delft

Procedural Vessel Hull Generation

Version of February 2, 2015

Nathan Mol

Page 2: Procedural Vessel Hull Generation - TU Delft
Page 3: Procedural Vessel Hull Generation - TU Delft

Procedural Vessel Hull Generation

THESIS

submitted in partial fulfillment of therequirements for the degree of

MASTER OF SCIENCE

in

COMPUTER SCIENCE

by

Nathan Molborn in Tholen, the Netherlands

Computer Graphics and Visualization GroupDepartment of Intelligent SystemsFaculty EEMCS, Delft University of TechnologyDelft, the Netherlandswww.ewi.tudelft.nl

TNOOude Waalsdorperweg 63

The Hague, the Netherlandswww.tno.nl

Page 4: Procedural Vessel Hull Generation - TU Delft

c© 2014 Nathan Mol.

Page 5: Procedural Vessel Hull Generation - TU Delft

Procedural Vessel Hull Generation

Author: Nathan MolStudent id: 1367757Email: [email protected]

Abstract

Simulations in 3-D virtual worlds are more and more applied to several domains,as it creates numerous potential opportunities and it reduces resources, costs and risks.Due to this growing phenomenon, 3-D content generation is an uprising topic. Proce-dural Modelling techniques are proven to be useful for this purpose. This paper con-tributes to a novel, compact solution that describes the complex progression of vesselhulls by means of a parametric model. Furthermore, this solution includes controlla-bility and serves the plausibility requirement. Our model achieves a significant levelof diversity and scalability. This method consists of an off-line training and on-linegeneration approach and is therefore applicable for on-the-fly vessel hull generation.Based on an elaborated validation research, we found that our method is capable ofgenerating plausible vessel hull instances with reasonable detail within 5 millisecondsa piece.

We also developed an mixed-initiative interface to manipulate vessel hulls by hand.The implementation of our model is elaborated in Appendix C. Moreover, we extendedour research on hull generation to complete vessel generation. Some preliminary workon that is presented in Appendix D.

Thesis Committee:

Chair: Prof. Dr. E. Eisemann, Faculty EEMCS, TU DelftUniversity supervisor: Dr. R. Bidarra, Faculty EEMCS, TU DelftCompany supervisor: Dr. R.M. Smelik, TNOCommittee Member: Dr. R. Heusdens, Faculty EEMCS, TU Delft

Page 6: Procedural Vessel Hull Generation - TU Delft
Page 7: Procedural Vessel Hull Generation - TU Delft

Preface

In most cases, good things come to an end, just as my Master Thesis project. At thispoint, I realize that I am just one step away from obtaining my Master of Science degree inComputer Science. About one year ago started my intern-ship at TNO The Hague. I wouldlike to thank TNO for giving me the confidence and opportunity to work on this interestingtopic.

Furthermore, I would like to thank everyone that supported me during this project.Firstly, I want to thank my fiance and parents for their love, motivation and support. I alsowant to thank my friends and fellow students for their interest in my project and hearing meout on my project over and over again.

Especially, I would like to thank to my supervisor Rafael Bidarra: man, you let thoseships float! You were a great help during my project, both substantially and personally.Another special thanks to Pedro Brandao Silva, you were a great help in assisting me withConstruct. Moreover, I want to thank my supervisors at TNO; Ruben Smelik and RobbertKrijnen. Thanks for your help and feedback during my project. Finally, I would like tothank Professor Elmar Eisemann and Richard Heusdens for their time to read and evaluatemy work.

Nathan MolDelft, the Netherlands

February 2, 2015

iii

Page 8: Procedural Vessel Hull Generation - TU Delft
Page 9: Procedural Vessel Hull Generation - TU Delft

Contents

Preface iii

Contents v

List of figures vii

1 Introduction 1

2 Related Work 32.1 Hull Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Procedural Generation Methods . . . . . . . . . . . . . . . . . . . . . . . 5

3 General Approach 73.1 Custom Shape Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.2 Sectional Progression Functions . . . . . . . . . . . . . . . . . . . . . . . 9

4 Training Model 114.1 Global dimensional relation training . . . . . . . . . . . . . . . . . . . . . 124.2 Custom Shape Model Training . . . . . . . . . . . . . . . . . . . . . . . . 124.3 Sectional Progression Functions Training . . . . . . . . . . . . . . . . . . 13

5 Hull Generation 17

6 Results 216.1 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216.2 Mathematical Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . 216.3 Exploratory case study . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

7 Discussion & Future Work 27

8 Conclusions 31

v

Page 10: Procedural Vessel Hull Generation - TU Delft

CONTENTS

Bibliography 33

A Glossary 37A.1 Hull Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37A.2 Our Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

B Questionnaire 39

C Implementation 41C.1 Functionalities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

D Preliminary work on Complete Vessel Generation 45D.1 Framework: Construct . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45D.2 Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45D.3 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

vi

Page 11: Procedural Vessel Hull Generation - TU Delft

List of figures

2.1 Lines plan [Tupper and Rawson, 2001] . . . . . . . . . . . . . . . . . . . . . . 32.2 Hull section principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3.1 General overview of our approach. First we need to enrich the Hull Structurewith example data, after which the Hull Structure can be utilized to generatehull geometry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2 Custom Shape, poly-line expressed with Section Parameters originated fromship design theory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4.1 Training pipeline overview. From example data, consecutive slices are fit intoour CSM. These slices are used to derive the sectional progression (i.e. SPF) ofthe hull. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.2 Realistic example container hull model after being preprocessed (downloadedfrom DELFTSHIP [del]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.3 A number of sections (at positions {0,0.1,0.3,0.5,0.7,0.9,1}) of our examplemodel trained on our CSM. The numbers on the axis represents the normalizedlength position between stern (0) and bow (1). . . . . . . . . . . . . . . . . . . 13

4.4 An example of trained Sectional Progression Functions. . . . . . . . . . . . . 15

5.1 Generation pipeline overview. Some input parameters are used to determinethe dimension of the hull. With this dimension and the remaining parameters,each section is generated sequentially with the SPF and CSM. The CSM usesthe same Section Parameters as during the training phase. . . . . . . . . . . . . 17

5.2 Generated instances, derived from the trained Hull Structure. Several levels ofdetail can be achieved with a different number of steps. . . . . . . . . . . . . . 19

6.1 Execution times (in ms) for the hull generation of several vessel types, with anincreasing number of steps n. . . . . . . . . . . . . . . . . . . . . . . . . . . 22

6.2 Average dissimilarity errors based on the validation metrics . . . . . . . . . . . 236.3 Metric progression of each vessel type visualized over the longitude. . . . . . . 24

vii

Page 12: Procedural Vessel Hull Generation - TU Delft

List of figures List of figures

7.1 Snapshots of worked out tanker vessels and container vessels . . . . . . . . . . 30

C.1 Generation GUI. Four Sectional Progression Functions are represented by graphs(1). Each desired function can be selected with the drop-down menus (2). SPFgraphs can be saved (3), SPF can be saved (4) and loaded (5), and data pointscan be loaded (6). Generation output can be saved as *.OBJ-files (7). Hullgeometry can be generated, with (8) our without (9) diversity. With the track-bars, dimensional properties (10) and the number of steps (11) can be defined.Furthermore, a vessel type can be selected (12). The CSM can be visualized atany longitude (13). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

D.1 Vessel weather deck elements . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

viii

Page 13: Procedural Vessel Hull Generation - TU Delft

Chapter 1

Introduction

Recently, the utilization of 3-D virtual worlds in simulation environments is highly in-creased. Their many potential possibilities are the main cause of this growth, besides thereduction of costs, time and resources. Simulations have proven to be useful for a widerange of problem domains like military purposes [arm; mst], flooding simulation [Kehl andHaan, 2012] and vehicle industry [pre].

A large amount of 3-D content is required for these virtual worlds in order to get a con-vincing perception. One way to model geometric content is by utilizing human resources.Although this is a labour intensive job for such a large amount of (geometric) content. Forthis reason, a large variety of (semi) automatic content modelling methods (defined as Pro-cedural Modelling) are deployed and are proven to be useful for several simulation area’s[Smelik et al., 2014].

Procedural Modelling techniques are characterized by a number of features, includingabstraction, parametric control, and flexibility [Ebert et al., 2003, p. 2]. A complex model isabstracted into a procedure (i.e. algorithm or function) with significant parametric control.Flexibility ensures that the procedure captures the essence of the generated content with-out being limited by real world constraints. In other words, the procedure is defined by astepwise sequence of instructions (i.e. recipe) to obtain content [Kelly and McCabe, 2006].Such procedures are often parametrized in order to increase variety and controllability.

Semi automatic methods use a mixed form of human-driven and computer-driven inputto a system. Such mixed-initiative methods aim to capture the designer’s high level inten-tion at the right moment. Therefore, controllability and usability are instrumental for suchinteractions. [Allen et al., 1999; Horvitz, 1999]

To the best of our knowledge, this is the first modelling method for plausible vesselhull geometry generation in a 3-D virtual environment. This method achieves a significantlevel of diversity and scalability, within reasonable time. Hereby the term plausible means(1) an real world approximation within reasonable margins and (2) visually convincing.A wide range of diversity on both categorical and dimensional level is achieved, whilehigh level differences are still visually noticeable between generated instances. Scalabilityensures generated hull geometry to be plausible for each possible length within a reasonablerange (i.e. constrained by real world type dependent length ranges). The instances should

1

Page 14: Procedural Vessel Hull Generation - TU Delft

Introduction

be generated instantly, as the generation procedure should be executable during run time.Within reasonable time is therefore limited between 0 and 500 milliseconds.

This paper describes a compact solution for describing the complex progression of ves-sel hulls by means of a parametric model. Furthermore, this solution includes controllabilityand serves the requirements of a significant level of diversity and scalability. This methodconsists of an off-line training and on-line generation approach and is therefore applicablefor on-the-fly vessel generation. Moreover, a mixed initiative UI was developed that pro-vides for extensive user-driven fine-tuning. It encapsulates the underlying complexity ofthe method, while at the same time facilitating exploration of the broad expressive power ofthis approach.

2

Page 15: Procedural Vessel Hull Generation - TU Delft

Chapter 2

Related Work

This Section describes the related work with respect to our topic. Section 2.1 describesprinciples according to hull design (i.e. our domain). Related methods and techniquesoriginated from procedural content generation are described in Section 2.2

2.1 Hull Design

From a ship design point of view, a hull has to fulfil requirements such as its purpose,economically responsible and safety [Tupper and Rawson, 2001]. A number of unavoidabledefinitions should be described for the sake of clarity.

Let {L,B,D,T} be the dimensional structure of a hull, where L means its length, Bits breadth or width, D its depth and T its draught. The draught is defined as the verticaldistance between the keel line and the waterline under fully loaded circumstances, measuredat the midship. [Tupper and Rawson, 2001][Dokkum, 2006, p. 25]

Figure 2.1: Lines plan [Tupper and Rawson, 2001]

3

Page 16: Procedural Vessel Hull Generation - TU Delft

2.1 Hull Design Related Work

A hull can be represented by a Lines Plan (shown in Figure 2.1): 2-dimensional repre-sentations of three different perspectives: its side (Sheer plan), its top (Half breadth plan)and its front and back combined (Body plan) [Tupper and Rawson, 2001; Dokkum, 2006].

Bilge Radius

Flat of Keel1/2

Deadrise angle

(a) Hull section measurements

(b) Sectional area curve. LR = length of run. P = parallel middle body. LE = length ofentrance. [Bertram and Schneekluth, 1998]

Figure 2.2: Hull section principles

An ordinate (or section) is defined as a vertical cross-section (or slice) in athwart direc-tion (i.e. between bow and stern) [Dokkum, 2006, p. 29]. Each section can be consideredas a 2-D frame and can be described by a number of measurements that define the shape. A

4

Page 17: Procedural Vessel Hull Generation - TU Delft

Related Work 2.2 Procedural Generation Methods

parametrized example of a section is showed in Figure 2.2(a).Area measures like the midship area AM describe only the total area of the middle sec-

tion of the hull. However, sectional area curves (Figure 2.2(b)) describe the whole length-wise areal progression between the bow and stern [Bertram and Schneekluth, 1998]. Thesekind of curves provide a clear image of how the area is distributed over the athwart direction.Each definition mentioned in this Section is included in Appendix A.1.

2.2 Procedural Generation Methods

Several procedural modeling methods like Fractal based modeling, L-systems, Grammars(split grammar [Wonka et al., 2003], shape grammar [Muller et al., 2006], wall grammar[Larive and Gaildrat, 2006], node-based representation [Silva et al., 2013]), are not suit-able for modeling complex geometry like hulls, since they are mainly useful for derivingself-similarity or a bottom down hierarchical build-up of a structure. Moreover, Inverse Pro-cedural Modeling [Bokeloh et al., 2010] is based on the reverse engineering approach. Thisapproach mainly aims to derive grammar rules from example geometry and are thereforenot suitable as well.

One could use Example based modeling for geometry generation. Example based mod-eling is perfectly suitable for synthesizing decomposed elements [Merrell, 2007; Merrelland Manocha, 2011]. However, these kind of methods are, similar to methods that aim todetect building blocks [Kalojanov et al., 2012], only particularly useful for finding recom-binations of decomposed elements. Besides, it is hard to validate the generated output andit often suffers difficulties while handling curved shapes.

Parametric (algebraic) methods are developed to generate new instances based upon anexample model with high level variations, while maintaining its global characteristics, areparticularly similar to our problem [Bokeloh et al., 2012]. Unfortunately, these powerfulmethods happens to have problems with curved patterns, mainly focus on finding (trans-lational and relational) patterns and alter the generation output based upon such patterns.However, these methods often use structure-aware shape editing algorithms. Hence, a struc-ture model is defined for a shape combined with extracted knowledge from training data.This model is deployed to achieve high level manipulations and variations and is developedto preserve the geometric structure and macro features.

In the solid modeling area, Sweeping is a proper method to obtain complex geometryinstantly by extrusion and revolving parameters [Foley et al., 1994]. One of the downsidesof this method is the inability of transforming a complex profile shape into another complexprofile shape, without additional knowledge. The sweeping function is perfectly suitablewhen the profiles are known. Sweeping between the longitudinal profiles is known as loft-ing in many CAD/CAM tools. It can be noted that, ironically, lofting a method that wasoriginally invented by shipbuilders.

With Warping and Morphing techniques one can transform profile behaviour over time[Gomes, 1999]. Morphing is mostly used for animation purposes, which are time depen-dent. However besides time, space can also be used as the dependency. Interpolation

5

Page 18: Procedural Vessel Hull Generation - TU Delft

2.2 Procedural Generation Methods Related Work

between keys (in this case spatial profiles) can be realized by taking a weighted versionbetween them.

Content like vessel hull instances have a complex progression along its length due totheir purpose, i.e. to carve through the water with a certain speed. More abstract, thismeans that sections of the hull are lengthwise highly parametrized, but yet constrained. Theparametrization of each hull differs between vessel types and varies within each vessel type.Using previous work, this paper contributes to a approach that treats these main challengesand brings forth an solution to this.

6

Page 19: Procedural Vessel Hull Generation - TU Delft

Chapter 3

General Approach

This Section gives a general overview of the approach. The basic steps of the method arealso explained in more detail. In order to generate vessel hull instances for each particularvessel type, we first need to consider its high level characteristics. What are general hullfeatures applicable for each particular vessel type? To respond to this question, we incor-porated both ship design theories and example data. The former provide clear definitionsand models to generalize vessel hulls, whereas the latter provides insights on how vesseldesign theories can be utilized to their full advantage. We developed a training approachto capture characteristics of example data with structure we call the Hull Structure. Thisstructure takes its inspiration from ship design theory and reflects the structure model ofBokeloh et al. [2012]. Once we have trained the Hull Structure on how to represent a hull,we are able to generate hull instances. The general overview of our approach is illustratedby Figure 3.1.

train generateHull

Structure

Figure 3.1: General overview of our approach. First we need to enrich the Hull Structurewith example data, after which the Hull Structure can be utilized to generate hull geometry.

In order to be able to test whether our approach actually generates plausible hull in-stances, its needs to be validated. Our validation research is divided into two parts: a math-ematical research and an exploratory case study. The former compares the generated modelswith example data. We will use the mathematical research to infer conclusions based uponthe mathematical properties of comparison measurements. The case study provides us withmore substantial conclusions about the plausibility of our method.

In this Section, the Hull Structure is described in more detail. It consists of a Cus-tom Shape Model (CSM) and Sectional Progression Functions (SPF) and are explained inSection 3.1 and 3.2, respectively. Section 4 will describe how example data are utilized toderive SPF. Once that is achieved, we are able to use the trained SPF for hull generation,

7

Page 20: Procedural Vessel Hull Generation - TU Delft

3.1 Custom Shape Model General Approach

which will be discussed in Section 5. The results of our method (including its performanceand validation research) are depicted in Section 6.

3.1 Custom Shape Model

As explained in Section 2.1, a hull can be described by a set of sections. Each section isrepresented by what we call Custom Shape Model (CSM). This model is able to describe asection at any point between bow and stern.

More formally, the CSM consists of three main elements: (1) a set of Section Param-eters, (2) a poly-line called the Custom Shape (CS), and (3) a set of Constraints. Theseelements are integrated to define the shape of a section, each having its own role. In thefollowing paragraphs, each element is described separately:

Section parameters: In order to describe a section that resemblances real world hull sec-tions, we involved the ship design theory of Section 2.1. We used some of the sectionmeasurements of Figure 2.2(a) for our CSM and call them Section Parameters. Figure 3.2illustrates the utilized section measurements we use for our CSM; breadth, depth, draught,flat of keel, deadrise angle, deadrise width, keel depth, bilge radius and a bottom offset.

p1 p2

p3

p4

p5

p7p7

dept

h

breadth

�at of keel deadrise width

bilgeradius

deadrise angle

keeldepth

bottom o�set

draught

p6

Figure 3.2: Custom Shape, poly-line expressed with Section Parameters originated fromship design theory.

Custom Shape: The Custom Shape is a poly-line that describes the shape of a hull section(illustrated by Figure 3.2). Each point (X ,Y ) is represented by expressions, for its X and Yvalue, respectively. A point is expressed in terms of Section Parameters and/or other points.Points can either be relative to preceding points or have an absolute position. In Figure 3.2,p4 is a relative point, connected to its predecessor p3 with Section Parameters ’deadrise

8

Page 21: Procedural Vessel Hull Generation - TU Delft

General Approach 3.2 Sectional Progression Functions

width’ and ’deadrise angle’. An absolute point is given by p7, with context-independentSection Parameters values ’breadth’ and ’depth’. Shapes can easily be customized to anyextent, what makes this approach really flexible. With the right configuration, any sectionof the Lines Plan (Section 2.1) can be described.

An example of a CS with trustworthy Section Parameters is given in Figure 3.2. In thisexample, plausible sample values are chosen for each parameter. This shows that with suchan model, an approximation of a section slice can be accomplished. Notice that this modelis still capable of representing a more complex shape when more Section Parameters andsection points are incorporated in the CS.

Constraints: Constraints are used to ensure valid and plausible configurations of the CS.Local constraints are used to define local relationships and (dimensional) limitations withinthe Custom Shape. For instance, each point of the CS should be inside the bounding box ofthe hull depth and breadth. Global constraints mainly care about relations between CustomShapes, e.g. limiting variations between consecutive sections. Such constraints ensure astrictly converging progression of the hull’s shape.

3.2 Sectional Progression Functions

So far, the CSM can describe any section shape at any longitudinal hull position. But still,this does not describe how the sections blend into each other, i.e. the sectional progression.Inspired by morphing and warping, where a mapping is used between two shapes, we needto find functions that describe this progression.

For this, it might seem enough to find functions that describe the longitudinal progres-sion of each Section Parameters. However, even if we had a function representation of eachSection Parameters, it would only give us a representation of one hull, i.e. one unique shape.Therefore, since we aim for a significant level of diversity we had to extend this method, bycombining the sectional area curves theory (Section 2.1) with the Section Parameters of theCSM. One can find the following relationships:

• Section Parameter Functions. These functions describes the effect of the sectionarea on the Section Parameter values. Such relations indicate the shape of a sectionat a certain section area value. The main purpose of these functions is to describe ashape template for each vessel type. An example of such relations is given in Figure4.4(a). It illustrates the effect of Section Parameter ’breadth’ on the section area.

• Sectional Area Functions. These functions describe the effect of the longitudinalsection position on the section area. Such relations are equal to the Sectional Areacurves (Section 2.1). The degree to which the template progress, without changingthe template itself is the main purpose of these functions. Such relations are illustratedby Figure 4.4(b).

The combination of Section Parameter Functions and Sectional Area Functions is whatwe call Sectional Progression Functions (SPF). The SPF allow us to achieve diversity by

9

Page 22: Procedural Vessel Hull Generation - TU Delft

3.2 Sectional Progression Functions General Approach

only modifying the Sectional Area Functions, whereas the progression of the hull’s shapestill remains intact. The next Section describes how these relations are useful to achievediversity. Appendix A.2 gives an overview of each definition stated in this Section.

10

Page 23: Procedural Vessel Hull Generation - TU Delft

Chapter 4

Training Model

Custom Shape Model

Constraints

CustomShape

de�neSection

Parameters

SectionalArea

Functions

SectionParameterFunctions

Sectional Progression Functions

Hull Structure

Figure 4.1: Training pipeline overview. From example data, consecutive slices are fit intoour CSM. These slices are used to derive the sectional progression (i.e. SPF) of the hull.

The hull training approach described in this Section can be separated into two phases. Sec-tion 4.1 describes the first phase on how global dimensional relations are trained for scala-bility purposes. The next phase describes how the Hull Structure is trained by fed exampledata. An overview of this approach is given by Figure 4.1. From example data, consecutiveslices are fit into our Custom Shape Model in order to get an ordered set of Custom Shapes(Section 4.2). The set of consecutive CSs is used to derive the sectional progression of thehull (i.e. deriving Sectional Progression Functions). This is elaborated in more detail inSection 4.3.

The second phase will be accompanied with an example, subsequently continued at theend of each Section. For this we use a realistic example model of a container vessel hull,as depicted in Figure 4.2. Preprocessing is involved to avoid artefacts during our approach.This piece of geometry is preprocessed by translating its midship section to the origin of theworld. Furthermore, we ensured that its weather deck is equalized (e.g. no raised deck).

11

Page 24: Procedural Vessel Hull Generation - TU Delft

4.1 Global dimensional relation training Training Model

Figure 4.2: Realistic example container hull model after being preprocessed (downloadedfrom DELFTSHIP [del])

4.1 Global dimensional relation training

Global hull dimension data are the first things to gather in order to ensure scalability withoutinvalid deformations of geometry. For that, we crawled a vessel information website [dnv]to build up a dataset. The dataset contains approximately 5720 elements distributed over121 types. Watson [1998] found that dimensional relations (e.g. length against depth) arelinear. Given these relations and our crawled dataset, we extended his research by findingmore elaborated relations with the least sum of squares regression technique.

The dimensional relations are described by fdim(L, type) = {L,B,D,T}, where fdim is afunction that determines for a given length L and type a dimensional structure {L,B,D,T}(as described in Section 2.1).

4.2 Custom Shape Model Training

Example geometry is used to train the Hull Structure. Each example hull is being prepro-cessed, in order to ensure a fixed orientation of the hull. First, a slice (i.e. a section) is cutout of the geometry at the middle position. From that point a number of transversal slicesare created, to both extremes (i.e. bow and stern). The total number of training slices isdefined by a user specified parameter n. Subsequently, each slice is fit into the CSM using aGenetic Algorithm (GA), while using both local and global constraints. The fitness functionfor this GA is defined by a shape comparison metric, namely the Template Metric [Mum-ford, 1991b]. This dissimilarity metric should be minimal in our case (i.e. for our research).It basically performs the XOR Boolean (i.e. difference) operation over training slice T andthe CS of a candidate configuration (i.e. the difference area is defined by T XOR CS). Thesum of result of this operation is the error value of this metric.

Example Figure 4.3 shows a result of the training procedure applied to the earlier men-tioned example model (Figure 4.2). In this case, we used n = 41, but only a subset ofslices is denoted for clarity considerations. The Template Metric error is visualized by the

12

Page 25: Procedural Vessel Hull Generation - TU Delft

Training Model 4.3 Sectional Progression Functions Training

colors orange and red. The former describes the outer-error (i.e. what should have beenincorporated, but was not), whereas the latter describes the inner-error (i.e. what shouldn’thave been incorporated, but was). The blue part(s) united with the red part(s) represents thetraining slice, whereas the blue part(s) united with the orange part(s) represents the CustomShape. The green dots represent the points of the CS.

0,5 1,00,0 0,30,1 0,7 0,9

inner error

outer error

training slice

CS slice

+

+

CS point

Figure 4.3: A number of sections (at positions {0,0.1,0.3,0.5,0.7,0.9,1}) of our exam-ple model trained on our CSM. The numbers on the axis represents the normalized lengthposition between stern (0) and bow (1).

4.3 Sectional Progression Functions Training

Now, we have learned the configuration of the various transversal sections. The next stepis to figure out how exactly the sections progress between the midship and both longitu-dinal extremes (i.e. stern and bow). For this we need to find functions that describe theprogression in the Sectional Progression Functions (Section 3.2).

As the longitudinal position for each trained Custom Shape (CS) is known, we can plotfor each CS its area value against its corresponding position. Furthermore, we can also plotfor each Section Parameter its value against its corresponding area of each CS. With this,we reconstruct the relationships found in Section 3.2.

For the purpose of generation (Section 5), these plots needs to be converted into func-tions. For this, function fitting is perfectly suitable. However, the problem is to decide asuitable function type. Inspired by the lofting technique, where originally planks are blendedin order to get a curved progression of the hull, we decided to use curved functions. A suit-able function for this is a Bezier function because its course is easily adjustable and has asimple representation. We used a Genetic Algorithm to fit the functions on the measureddata points.

In order to simplify the fitting and avoid artefacts, we assumed a monotonic decreasingprogression from its midship to both extremes, and we are therefore looking for monotonicfunctions. This results in a progression that can be represented by a single function andartefacts (i.e. alternating values) are avoided. This assumption is satisfied by constructingan additional set of global constraints that forces the CSM to follow a monotonic trend-line.This simplification reduces the number of functions to two per relation (i.e. one for midshiptowards bow and one for midship towards stern).

13

Page 26: Procedural Vessel Hull Generation - TU Delft

4.3 Sectional Progression Functions Training Training Model

Example We used the described training theory into our example case and derived theSectional Progression Functions. Some of the results are depicted in Figure 4.4. In Figure4.4(b) the functions of Section Parameter ’breadth’ are depicted, and Figure 4.4(a) showsthe functions of the ’total area’. The green dots represents the data points derived by theplots. The gray lines represents the trajectory of the Bezier function, the orange dots indicatethe positions of the control points.

With Figure 4.4(a) and 4.4(b), one can simply infer the differences between the courseof the breadth towards bow and stern. Let us illustrate it with the following example: thebow breadth converges to zero. The area value at the bow position (in Figure 4.4(b)) is zero(i.e. area decay is 1.0). Then, the breadth value at this point corresponds to an area decayvalue of 1.0 at the bow (in Figure 4.4(a)). This results in a value of zero.

14

Page 27: Procedural Vessel Hull Generation - TU Delft

Training Model 4.3 Sectional Progression Functions Training

Section Parameter Functions

area decayarea decay

norm

aliz

ed b

read

th

1.0

0.0

0.5

0.0 1.00.5 0.0 1.00.5

(a) Section Parameter Functions of Section Parameter ’breadth’. The left diagram indicates the midship towardsstern course, whereas the right diagram shows the midship towards bow part.

area

hull longitude (stern to bow)

Sectional Area Functions

0.0 0.5 1.0

1.0

0.0

0.5

(b) Sectional Area Functions of the ’total area’

Figure 4.4: An example of trained Sectional Progression Functions.

15

Page 28: Procedural Vessel Hull Generation - TU Delft
Page 29: Procedural Vessel Hull Generation - TU Delft

Chapter 5

Hull Generation

inputparameters

Custom Shape Model

Constraints

CustomShape

useSection

Parameters

SectionalArea

Functions

SectionParameterFunctions

Sectional Progression Functions

Hull Structure

get {L, B, D, T}

Figure 5.1: Generation pipeline overview. Some input parameters are used to determine thedimension of the hull. With this dimension and the remaining parameters, each section isgenerated sequentially with the SPF and CSM. The CSM uses the same Section Parametersas during the training phase.

We now describe how the trained Sectional Progression Functions and global dimensionalrelations in Section 4 can be used in order to generate hull geometry. An overview of thisprocess is given by Figure 5.1. In fact, the generation approach uses the Hull Structure in areverse manner; generating Custom Shapes based upon Sectional Progression Functions.

For this, we introduce H = G( fdim(L, type),SPF ,r,n), where H is the hull instance tobe generated, and G the method to generate a hull instance with parameters fdim(L, type)achieving the dimensional relation structure {L,B,D,T}, SPF the Sectional ProgressionFunctions, r a randomness flag (i.e. incorporate diversity), and n the number of steps.Basically, n is equal to 1+ k ∗ 2, where k is the number of steps in both directions and thesum of n should be odd, due to the midship section.

As described in Section 4, we are dealing with monotonic functions (SPF) relative tothe midship section. Therefore, we start at the middle and from there we create new sectionstowards bow and stern. The longitudinal positions of the sections are determined based onthe decrease of area in terms of percentage. This provides more detail at parts of the hullwhere the area varies considerably (e.g. around the bow), while avoiding unnecessary detailat parts where the area barely changes (e.g around its midship). The position of sectioni ({i ∈ Z|1 6 i 6 k}) can be determined by finding the x-value (position) in the Sectional

17

Page 30: Procedural Vessel Hull Generation - TU Delft

Hull Generation

Area Functions that corresponds to the y-value (area) of min+(1− i/k)×(max−min): i= kmeans the minimum area, i = 0 means the maximum area (i.e. midship area) and 1− i/kmeans the area percentage. Note that this process works in two directions; k sections towardthe bow and k sections towards the stern.

Next, for each section, the Section Parameters are determined from the Section Param-eter Function(s), using the known area value. With them, the Custom Shape Model is usedto create the Custom Shape, fulfilling all its constraints. Once each section is generated,each consecutive section is connected into a full body, namely the hull geometry.

Diversity In order to obtain diversity, the r-flag is incorporated into our method. Dis-persion around the Sectional Area Function(s) ensures diversity within the trained data.Diversity can be achieved by modifying the control point positions of the Bezier functions.In order to keep the dispersions reliable, multiple example models of the same type shouldbe incorporated during the training phase. Statistics can be derived, which should provide aclear dispersion range. Unfortunately, we had to deal with scarce data. The sample size forthis study was too small (maximum of 5 samples per type) to rely on the standard deviationand a normal distribution. Therefore, we used the standard deviation as a hard boundary,with a uniform distribution to variate within this scope.

Scalability Proper scalability avoids problems like geometry deformations. The traineddimensional relation function fdim(L, type) (mentioned in Section 4.1), helps us with findingrealistic proportions for every length (within reasonable boundaries). Hereby we assumedthat the SPF holds for each dimension and still obtains plausible results. This assumptionwas confirmed by vessel designers (i.e. vessel can be scaled up linearly).

Example For our running example, we will use the trained data (i.e. fdim and SPF) ofthe previous Section to generate container ship hull geometry, with 5 sections (n = 5). Fur-thermore, let us take length L equal to that of our example model; 288m. This leaves us togenerating the instance: H = G( fdim(288m,container),SPF , f alse,5).

For each step, the Custom Shape and its position are calculated based on the SPF. Eachposition is determined by i (for each side), parameter length L and the area decrease interms of percentage, which respectively lead to 0, 34.56, 144, 241.92, and 288. The first,middle and last positions are trivial as they are positioned at the stern, midship and bow,respectively. Still, each of them can be determined by finding the position corresponding toarea value min+(1− i/k)×(max−min) at the function responsible for this section type (i.e.toward bow or stern). The second section can be determined by the position correspondingto an area percentage of 0.5 (i.e. i = 1,k = 2): 0.22+(1−1/2)×(1.0−0.22) = 0.61 (min =0.22, max = 1.0, type = towards stern). The position of the fourth section can be determinedsimilarly: 0.0+(1−1/2)× (1.0−0.0) = 0.5 (min = 0.0, max = 1.0, type = towards bow).At this point, we can determine the x-values corresponding to the y-value of 0.61 on thestern part (i.e. left side) and 0.5 on bow part (i.e. right side) in Figure 4.4(b). In our case wefound those values to be around 0.12 and 0.84, respectively. The absolute position valuesare therefore respectively 34.56 (0.12×288) and 241.92 (0.84×288).

18

Page 31: Procedural Vessel Hull Generation - TU Delft

Hull Generation

Now that we know the positions, the area of each section can be determined with theSectional Area Function(s). With this, we can determine each Section Parameter with theSection Parameter Functions. The parameter values are finally fed to the CSM, and the de-sired hull CS can be derived, while following the Constraints. A wire-frame of the resultinggenerated hull instance is given in Figure 5.2(c). Figure 5.2(a) and 5.2(b) show results ofthe same approach, but with n = 41 and n = 21, respectively.

(a) n=41 (b) n=21 (c) n=5

Figure 5.2: Generated instances, derived from the trained Hull Structure. Several levels ofdetail can be achieved with a different number of steps.

19

Page 32: Procedural Vessel Hull Generation - TU Delft
Page 33: Procedural Vessel Hull Generation - TU Delft

Chapter 6

Results

We implemented the described Hull Structure and used training data from several vesseltypes. In total we incorporated 4 vessel types with a ranging number of examples: tankervessel (4), container vessel (5), warship (1) and a dummy model that represents a smallboat. The results in this section are based on an Intel Core i7 at 2.4 GHz device.

This section has the following built-up. In Section 6.1 we analyse the performance ofour generation method. Next, we investigate the validity of this method, following both aquantitative research (Section 6.2) and a exploratory case study (Section 6.3).

6.1 Performance

The complexity of our hull generation approach is given by O(n∗m), where n correspondsto the number of sections and m to the total number of functions in the SPF. Figure 6.1shows the average execution times for each type. We used different values of n and usedthe same CS and Section Parameters as we used in Section 3 (Figure 3.2). For the CSM weused in total 24 functions; 20 Section Parameter Functions (2 for each Section Parameter)and 4 Sectional Area Functions. The results show that our approach is very fast, as it is ableto generate hull instances with 21 sections, within approximately 4 milliseconds. As welook at Figure 5.2(b), such a hull already gives reasonable details. Furthermore, it is clear tosee that the the execution time is nearly independent of the vessel type, what makes it easyto estimate computation time when dealing with new types or batch execution.

6.2 Mathematical Validation

As mentioned in Section 3, we have chosen to use shape comparison measurements for ourmathematical research. Since our approach basically determines a set of 2D sections, wecan handle the global comparison as a comparison of a set of (local) sections (2D polygonshapes). As stated by Oberkampf and Barone [2006], validation is described as the pro-cess of determining the degree to which a model is an accurate representation of the realworld from the perspective of the intended use of the model. Validation metrics are usedto describe the difference between the computational model and the physical experiment.

21

Page 34: Procedural Vessel Hull Generation - TU Delft

6.2 Mathematical Validation Results

TANKER CONTAINER BOAT WARSHIP

Generation time

0

1

2

3

4

5

6

7

8

9

10

gene

ratio

n tim

e (in

ms) n = 11

n = 21

n = 31

n = 41

Figure 6.1: Execution times (in ms) for the hull generation of several vessel types, with anincreasing number of steps n.

In our case, this is the difference between the original hull models (training data) and theprocedural output of our algorithm (generated data).

Such metrics are described by a cost function d(A,B) between two shapes [Arkin et al.,1991], whereby A is a shape from the training data and B a shape from the generated data.This function basically measures the dissimilarity between shapes (i.e. to which degree Adiffers from B). The shapes are equal if and only if d(A,B) = 0. Mumford [1991a] providesan overview of several shape dissimilarity metrics. We use the earlier mentioned TemplateMetric, the Hausdorff Metric and Turning Functions.

The first one is incorporated to compare this validation process with the trained model.Next, the Hausdorff Metric is used to independently investigate the maximum dispersion be-tween shapes. This metric, like the Template Metric, focus on absolute differences. Turningfunctions do not focus on absolute differences, but rather on shape forms. A combinationof the last two allow us to get insight in both the absolute (shape size dependent) differenceand shape form (shape size independent) difference between the shapes.

In order to be able to compare the metric values and to interpret metric values, we needto normalize this error. For our validation, we have chosen to normalize the HausdorffMetric by the diagonal of the midship bounding rectangle, as it is the highest dispersion inany case (due to the constraints). The Turning Functions are normalized by the maximumTurning Functions area of both shapes [Riedl et al., 2006].

For our validation research, we used the example data mentioned at the beginning of thisSection. Each example model T is first trained with our training model. Next, we generatea hull instance H with the same dimensional properties (i.e. D, B, and L) as the examplemodel. Note that we still generate the draught based on the dimensional data of fdim. Wehave chosen to use a large number of steps (n = 41) in order to incorporate low-level detailin the generated hull. In other words, it mainly focus on comparing hull parts where thearea actually varies considerable (Section 5). Each slice of H is compared to the slice of T

22

Page 35: Procedural Vessel Hull Generation - TU Delft

Results 6.2 Mathematical Validation

at the same location in terms of the earlier mentioned metrics.

Figure 6.2 depict the average results of our validation research. The first two errors(red and purple) represents the dissimilarity errors of our validation metrics. As mentionedbefore, the Template Metric (green) is incorporated to compare with the training model,it basically measures the error introduced by the whole training approach. We involvedthe fourth (yellow) error to show the error of Custom Shape Model fitting of Section 4.2.The difference between between the last two can be seen as the error introduced by theSectional Progression Functions training of Section 4.3. In other words; the Custom ShapeModel training error (yellow) is part of the complete Template Metric error (green).

BOAT CONTAINER TANKER WARSHIP

Average dissimilarity errors based on the validation metrics

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Nor

mal

ized

Err

or

0.078 0.1160.049

0.0080.065 0.066 0.058

0.0120.103 0.123

0.0740.009

0.1430.085 0.065 0.028

Average Hausdorff error

Average Turning Function error

Average Template error

Average CSM training error

Figure 6.2: Average dissimilarity errors based on the validation metrics

The results show that our method with the chosen CSM configuration is mostly suitablefor container vessels. On the other hand, tanker vessels are slightly less equal to theirexample data with this CSM. Another interesting thing that reveals, is the considerabledifferences between the Turning Functions and the other metrics for types ’BOAT’ and’WARSHIP’. For the ’BOAT’ case, this actually means that the absolute difference betweenthe training and generation slices are quite similar, whereas the shape differs quite more.The ’WARSHIP’ case can be interpreted the other way around.

Next, the metric error values as visualized in Figure 6.3 are represented over the lon-gitude of the vessel hull. Hence, we can conclude that in general the dissimilarity arisestowards both extremes (around the bow and stern), whereas at the main body (80% between0.1 and 0.9) a high level of similarity is achieved. One would directly mention the extremeoutliers. These outliers bias the average results in Figure 6.2. When investigating theseartefacts more thoroughly, we discovered that the bias was a result of the following: (1) theCS poly-line we used was too generic to be applicable for each section, (2) undersamplingof Section Parameters, (3) our assumption of a smooth progression (in Section 4.3) is notalways true, and (4) the global constraints that ensures monotonic functions could result inan invalid progression. These artefacts will elaborated in more detail in Section 7.

23

Page 36: Procedural Vessel Hull Generation - TU Delft

6.3 Exploratory case study Results

Course of metric error over the hull longitude

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0Normalized longitude (between stern (0.0) and bow (1.0))

Template Metric

Hausdorff

Turning Function

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

Met

ric v

alue

Figure 6.3: Metric progression of each vessel type visualized over the longitude.

6.3 Exploratory case study

As stated in the introduction, our model should produce visually convincing geometry,rather than geometry of real world vessels. Therefore, we should not interpret plausibil-ity in terms of the measured errors with the mathematical research. In order to get a betterunderstanding on how plausible the results of our model are, we involved an exploratorycase study. With this study, we aspired to get a better understanding on how visually con-vincing the results are (for a given CSM configuration). Note that we aim to find howsuitable a particular configuration of our model is in representing example data, rather thanrepresenting real world vessels. Furthermore, we aimed to generate plausible vessel hullgeometry in terms of an approximation.

For each hull in our example data, as described in beginning of this Section, we created acase. Each case consists of the example hull T and a generated hull G, where G is generatedby a trained Hull Structure fed by T (with a CSM configuration equivalent to Section 3). Foreach case we tried to find dissimilarities, to which extent those dissimilarities actually matterfor the visual perception and to what degree the generated geometry can be considered asa visually convincing representation of the example geometry. See Appendix B for thequestionnaire regarding our case study.

In order to get a better understanding on how visual convincing the results are, weinterrogated a diverse group of respondents. We involved two maritime ship design expertsand three non-experts. The former provided us with an in-depth overview of dissimilarities,as they are likely to involve their domain knowledge. The latter where mainly incorporatedto focus on capturing the visual perception of dissimilarities. With them, we were able todistinguish to which degree the several findings contribute in terms of plausibility (i.e. howvisually convincing it is).

With this research, we mainly found two types of comments: high-level detail dissimi-larities and low-level detail dissimilarities. Generally, on high-level detail, the participantsstated satisfactory similarity between the example geometry and generated geometry. Espe-cially, the above water parts were considered to have satisfactory similarity. When focussing

24

Page 37: Procedural Vessel Hull Generation - TU Delft

Results 6.3 Exploratory case study

on a more low level detail, the participants noticed a number of dissimilarities between bothmodels. Some examples of such dissimilarities are; the lack of representing a bulbous bowand a keel, the deck line is converging too fast or too slow in some cases (from its midshiptowards bow and stern), and differences in the profile of the bow. The group of non-expertsstated that these dissimilarities did not have a significant effect on their perception to bevisual convincing. However, the group of maritime ship design experts stated that thesedissimilarities actually do have a significant effect on their perception.

We think that the difference in their perception between both groups lies in how theyweigh such dissimilarities. Furthermore, we believe that their perception is biased by theirexpertise (i.e. domain knowledge).

In general, we can conclude that our generated geometry is visually convincing. Espe-cially, when we focus on the motivation of our research; generating vessel (hull) geometryin a 3D virtual environment. For the (simulation) purpose of this environment, only floatingvessels are incorporated. Therefore, the above water part can be considered as the most im-portant visual appearance. Moreover, we can state that the visually convincing perceptionon a low level of detail is dependent on one’s background knowledge.

25

Page 38: Procedural Vessel Hull Generation - TU Delft
Page 39: Procedural Vessel Hull Generation - TU Delft

Chapter 7

Discussion & Future Work

This Section addresses the the limitations of our research (found in Section 6.2). Conse-quently, we accompany those limitations with the findings of our case study in Section 6.3and provide them with potential improvements for future work. Finally, we address somemore general options for future work.

CS poly-line We mentioned that the CS poly-line as defined in Section 3 was too genericto be applicable for each section. This means that the ship design-based CS poly-line ex-pression of Figure 3.2 is not the most suitable for every longitudinal position between thestern and bow. Examples of this are given by our findings during the case study in (seeSection 6.3): the bulb (connected to the bow) and the profile of the bow cannot be fullyrepresented by this poly-line. Based on Figure 6.3, we can add to this that this poly-linewas too generic to be applicable for every vessel type. It would therefore make sense toincorporate several CS poly-line expressions, both for each vessel type and section type.For multiple CSs per section type, one should also consider and describe how the poly-lines blend into each other. However, during this research we aimed for a plausible, but yetgeneric, solution, and have therefore chosen to use the generic CS of Figure 3.2.

Amount of Section Parameters Additional Section Parameters would strongly increasethe similarity. To continue with the prior example, additional points between the bilge (p5)and stern point (p6) on the poly-line expression of Figure 3.2 would decrease the dissimi-larity error. Furthermore, additional points increase flexibility and could therefore representmore section types. Unfortunately, we are dealing with a trade-off between quality and ex-ecution time, i.e. the more Section Parameters are incorporated, the longer it takes to trainand generate hull instances. For the purpose of our research, we have chosen to favour alow number of Section Parameters, while still being able to represent plausible hulls.

Hull progression smoothness In Section 4.3, we assumed a smooth progression of thehull. This assumption is not always necessarily true. With this assumption, we can describethe Sectional Progression Functions with a minimum amount of functions. A downside ofsmooth functions is that they also smooth out abrupt sectional changes. Take for example

27

Page 40: Procedural Vessel Hull Generation - TU Delft

Discussion & Future Work

the bottom line of the hull. This could change abruptly when it approaches the bow or stern.Another example that illustrates this phenomenon would be the comment about a missingkeel in Section 6.3: the keel is basically ”smoothed away”. We made this assumption forcomplexity reduction purposes. If we want to deal with such abrupt changes, one could in-corporate B-Splines or another combination of function types (e.g. Bezier with a linear func-tion). However, this means an enormous decline of training performance, since the numberof possible combinations will be endless. Nevertheless, we developed a mixed-initiativeinterface, that allows a user to optimize the Sectional Progression Functions manually (seeAppendix C).

Monotonic progression With the introduction of global constraints, we forced the pro-gression of the Section Parameters to be monotonic in order to avoid alternating artefactsand avoid the use of combined functions (as mentioned above). Unfortunately, as we use adeterministic one-way training approach, we could never be sure of picking the right ”direc-tion”. This could lead to an invalid progression of the Section Parameters. A more globaltraining approach could avoid such problems by incorporating also its successor(s). Weleave improvements in this area open for future research. But we believe that such improve-ments are very likely to increase the training time significantly.

Basically, each issue goes hand in hand with a trade-off between quality and execution time.As we aimed for an approximation of the real world vessels, we accepted some error in or-der to achieve very low execution times. Some limitations are introduced as a result of thechosen set-up of the Custom Shape Model, our assumptions and the way in which we rep-resented the progression of the sections. However, with the configuration we used in thispaper, we can already achieve plausible hull geometry. Especially, when we are lookingat the utilization of our model (see Section 6.3). Yet, in order to improve the utilization ofour model, one can add Section Parameters, configuring the CS more specific to its purpose(e.g. representing bulbous bulb) and using more CSs to describe the hull progression. Thiswould probably increase the visually convincing conception.

One of the future directions of this research would be generating complete vessel modelsbased upon this hull generation approach. For this, weather deck equipment (content in theform of 3D models), semantics and placement information should be deployed. Procedu-ral techniques can be used to derive weather deck layouts with content placed on it in aplausible fashion. In order to give an impression of the potential possibilities, we did somepreliminary work on this area (see Appendix D). Figure 7.1 shows snapshots of two fullyworked out vessel types, namely tanker vessels and containers vessels.

As we discovered in Section 6.2, it is not clear what the optimal Custom Shape set-up,the right Constraints, and the best Sectional Progression Functions types should be. In orderto improve this method, a reverse engineering approach would be recommended. It shouldbasically use a back-tracing approach from the model we derived to find how to improve theCS poly-line configuration. Critical areas, where the validation error is unacceptable, couldbe resolved this way. This kind of operations could be performed on several vessel types todetermine the ideal Custom Shape Model for each vessel type.

28

Page 41: Procedural Vessel Hull Generation - TU Delft

Discussion & Future Work

Furthermore, Our model could be extended by incorporating more ship design elementsas additional input parameters. Van Dokkum [Dokkum, 2006] mentions a number of coeffi-cients under which the Block Coefficient and Midterm Coefficient. The former determinesthe ratio of the hull volume below the waterline with respect to its bounding area (L×B×T ).This coefficients could feed our Sectional Area Functions, since the integrated area of thenormalized sectional area curve equals this coefficient. Prior to that, further research shouldbe performed on how these functions are distributed according to a range of customaryblock coefficient values per vessel type. More in-depth studies on this can be found in thework of Bertram and Schneekluth [1998]. The Midterm coefficient could be used to adjustthe shape of the initial midship section.

29

Page 42: Procedural Vessel Hull Generation - TU Delft

Discussion & Future Work

(a) Tanker vessels and container vessels on different scales

(b) Back view of a (large) tanker vessel and a (large) container vessel

(c) Front view of a (large) tanker vessel and a (large) container vessel

Figure 7.1: Snapshots of worked out tanker vessels and container vessels

30

Page 43: Procedural Vessel Hull Generation - TU Delft

Chapter 8

Conclusions

We developed a parametric model (i.e. the Hull Structure) to describe the complex pro-gression of vessel hulls. We introduced Sectional Progression Functions to represent thisprogression. Furthermore, to create plausible sections and to make our model more in-tuitive, we included a model based on vessel design theories; the Custom Shape Model.This model consists of a constraint-based poly-line Custom Shape expressed with SectionParameters.

In our research, we developed a modelling method for plausible vessel hull geometrygeneration in a 3D virtual environment. With an exploratory case study, we found ourgenerated geometry to be visually convincing on a high level of detail as well on the abovewater part. Therefore, we meet the motivation of our research; generating vessel (hull)geometry in a 3D virtual environment, in which vessels are supposed to float. Therefore,the above water part is the most important visual appearance. On a low level of detail, wefound a number of dissimilarities, which we discussed in Section 7. Since that they do notadd up to the motivation of our research, we decided to leave them open for future work.

For the purpose of diversity, we introduced the split-up between Sectional Area Func-tions and Section Parameter Functions in the SPF. With Bezier curves, we were able todescribe the course of the Sectional Area Functions. Diversity is achieved by deviatingcontrol points of such functions around an average of multiple samples. With a sufficientnumber of samples, we achieved a significant level of diversity within a reasonable range.

In order to be able to scale the vessels in terms of length, while preserving plausibledimensional proportions, we incorporated global dimensional relations (Section 4.1). Forthis, we extended the research of [Watson, 1998] by crawling the web to gather reliablevessel information. Based upon this and the confirmed assumption by vessel designersabout linear up-scaling, we achieved plausible scalability.

After off-line training, our solution generates on-line hull instances with reasonabledetail (with 21 sections) within reasonable times (i.e. within approximately 4 milliseconds).Such generation times makes this method perfectly suitable as a basis for instant contentgeneration.

As identified in the Discussion (Section 7), several improvements can be made to thisapproach. One of them is seeking the perfect configuration of each component of the Cus-tom Shape Model with a reverse engineering approach. Incorporating more flexibility in

31

Page 44: Procedural Vessel Hull Generation - TU Delft

Conclusions

the Custom Shape Model could increase the convincing perception; introducing multipleCustom Shapes per section type, describing how different CSs could blend into each other,and multiple poly-lines in a CS are likely to improve detail.

32

Page 45: Procedural Vessel Hull Generation - TU Delft

Bibliography

Arma 3, a realistic military simulation game. http://arma3.com/. Accessed: 2014-12-08.

Free vessel model library of delftship. http://www.delftship.net/DELFTship/index.php/download/designs. Accessed: 2014-03-02.

Dnv exchange, a vessel information database website. https://exchange.dnv.com/Exchange/main.aspx. Accessed: 2014-03-10.

Ms&t: Military simulation & training magazine. http://halldale.com/mst#.VIWDKTGG_eI. Accessed: 2014-12-08.

Prescan, a physics-based simulation platform used for the automotive industry. https://www.tassinternational.com/prescan. Accessed: 2014-12-08.

JE Allen, CI Guinn, and E Horvtz. Mixed-initiative interaction. Intelligent Systems andtheir Applications, IEEE, 14(5):14–23, 1999.

Esther M Arkin, L Paul Chew, Daniel P Huttenlocher, Klara Kedem, and Joseph SBMitchell. An efficiently computable metric for comparing polygonal shapes. IEEE trans-actions on pattern analysis and machine intelligence, 13(3):209–216, 1991.

Volker Bertram and H Schneekluth. Ship design for efficiency and economy. Butterworth-Heinemann, 1998.

Martin Bokeloh, Michael Wand, and Hans-Peter Seidel. A connection between par-tial symmetry and inverse procedural modeling. ACM Trans. Graph., 29(4):104:1–104:10, July 2010. ISSN 0730-0301. doi: 10.1145/1778765.1778841. URL http://doi.acm.org/10.1145/1778765.1778841.

Martin Bokeloh, Michael Wand, Hans-Peter Seidel, and Vladlen Koltun. An algebraicmodel for parameterized shape editing. ACM Trans. Graph., 31(4):78:1–78:10, July2012. ISSN 0730-0301. doi: 10.1145/2185520.2185574. URL http://doi.acm.org/10.1145/2185520.2185574.

33

Page 46: Procedural Vessel Hull Generation - TU Delft

BIBLIOGRAPHY

Klaas van. Dokkum. Basic Ship Theory. Dokmar Maritime Publishers, 2006. ISBN 90-806330-8-9.

David S. Ebert, F. Kenton Musgrave, Darwyn Peachey, Ken Perlin, and Steven Worley.Texturing and Modeling: A Procedural Approach. Morgan Kaufmann Publishers Inc.,San Francisco, CA, USA, 3rd edition, 2003.

James D. Foley, Richard L. Phillips, John F. Hughes, Andries van Dam, and Steven K.Feiner. Introduction to Computer Graphics. Addison-Wesley Longman Publishing Co.,Inc., Boston, MA, USA, 1994. ISBN 0201609215.

J. Gomes. Warping and Morphing of Graphical Objects. Number v. 1 in ComputerGraphics and Geometric Modeling Series. Morgan Kaufmann Publishers, 1999. ISBN9781558604643. URL http://books.google.nl/books?id=bWlMzXmw8ZMC.

Eric Horvitz. Principles of mixed-initiative user interfaces. In Proceedings of the SIGCHIconference on Human Factors in Computing Systems, pages 159–166. ACM, 1999.

Javor Kalojanov, Martin Bokeloh, Michael Wand, Leonidas Guibas, Hans-Peter Seidel,and Philipp Slusallek. Microtiles: Extracting building blocks from correspondences.Comp. Graph. Forum, 31(5):1597–1606, August 2012. ISSN 0167-7055. doi: 10.1111/j.1467-8659.2012.03165.x. URL http://dx.doi.org/10.1111/j.1467-8659.2012.03165.x.

Christian Kehl and Gerwin de Haan. Interactive Simulation and Visualisation of Re-alistic Flooding Scenarios, chapter 1, pages 79–96. Lecture Notes in Geoinforma-tion and Cartography. Springer, dec 2012. URL http://graphics.tudelft.nl/Publications-new/2012/KH12.

George Kelly and Hugh McCabe. A survey of procedural techniques for city generation.Institute of Technology Blanchardstown Journal, 14:87–130, 2006.

Mathieu Larive and Veronique Gaildrat. Wall grammar for building generation. In Proceed-ings of the 4th international conference on Computer graphics and interactive techniquesin Australasia and Southeast Asia, pages 429–437. ACM, 2006.

Paul Merrell. Example-based model synthesis. In Proceedings of the 2007 symposium onInteractive 3D graphics and games, pages 105–112. ACM, 2007.

Paul Merrell and Dinesh Manocha. Model synthesis: A general procedural modeling algo-rithm. IEEE Trans. Vis. Comput. Graph., 17(6):715–728, 2011.

Pascal Muller, Peter Wonka, Simon Haegler, Andreas Ulmer, and Luc Van Gool. Proceduralmodeling of buildings, volume 25. ACM, 2006.

David Mumford. Mathematical theories of shape: Do they model perception? In SanDiego,’91, San Diego, CA, pages 2–10. International Society for Optics and Photonics,1991a.

34

Page 47: Procedural Vessel Hull Generation - TU Delft

BIBLIOGRAPHY

David B. Mumford. Mathematical theories of shape: Do they model perception? In Proc.Geometric Methods in Computer Vision Conference, volume SPIE-1570, pages 2–10.Soc. Photo-optical & Ind. Engineers, 1991b.

William L Oberkampf and Matthew F Barone. Measures of agreement between computationand experiment: validation metrics. Journal of Computational Physics, 217(1):5–36,2006.

Andreas Riedl, Wolfgang Kainz, and Gregory A Elmes. Progress in Spatial Data Handling:12th International Symposium on Spatial Data Handling. Springer, 2006.

Pedro Brandao Silva, Elmar Eisenmann, Rafael Bidarra, and Antonio Coelho. Proceduralcontent graphs for urban modeling. (Submitted for publication), page 12, 2015.

Pedro Brandao Silva, Pascal Muller, Rafael Bidarra, and Antonio Coelho. Node-basedshape grammar representation and editing. PCG, 13:1–8, 2013.

Ruben M Smelik, Tim Tutenel, Rafael Bidarra, and Bedrich Benes. A survey on proceduralmodelling for virtual worlds. In Computer Graphics Forum. Wiley Online Library, 2014.

E.C. Tupper and KJ Rawson. Basic Ship Theory. Number v. 2. Elsevier Science, 2001.ISBN 9780080499864. URL http://books.google.nl/books?id=R7irlJvDccoC.

D.G.M. Watson. Practical Ship Design. Elsevier ocean engineering book series. El-sevier, 1998. ISBN 9780080429991. URL http://books.google.nl/books?id=JgIQsWuSmmgC.

Peter Wonka, Michael Wimmer, Francois Sillion, and William Ribarsky. Instant architec-ture, volume 22. ACM, 2003.

35

Page 48: Procedural Vessel Hull Generation - TU Delft
Page 49: Procedural Vessel Hull Generation - TU Delft

Appendix A

Glossary

In this appendix we give an overview of frequently used terms and abbreviations.

A.1 Hull Design

Length (L) Overall length between the bow and stern of the hull. Synonymously calledlongitude.

Breadth (B) Breadth of the hull. Synonymously called attitude or beam.

Depth (D) Depth of the hull. The vertical distance between the keel line and the top of theuppermost continuous deck, measured at the midship.

Draught (T ) Draught of the hull. The vertical distance between the keel line and thewaterline under fully loaded circumstances, measured at the midship.

Lines Plan A 2-dimensional representations of three different perspectives: its side (Sheerplan), its top (Half breadth plan) and its front and back combined (Body plan). Anexample is given by Figure 2.1.

Section (ordinate) Vertical cross-section (or slice) in athwart direction (i.e. between bowand stern). Figure 2.2(a) provides an example of a section.

Midship area AM Total area of the midship section of a hull.

Sectional area curves Curves that describe the lengthwise areal progression between thebow and stern. Figure 2.2(b) illustrates a sectional area curve.

A.2 Our Model

Hull Structure This structure represents vessel hull characteristics. It consists of a CustomShape Model and Sectional Progression Functions and can be trained with exampledata (Figure 4.1). A learned Hull Structure can be utilized for hull generation (Figure5.1).

37

Page 50: Procedural Vessel Hull Generation - TU Delft

A.2 Our Model Glossary

Custom Shape Model (CSM) This model is responsible for representing vessel hull sec-tions at any longitudinal position. The CSM consists of three main elements: (1) a setof Section Parameters, (2) a poly-line called the Custom Shape (CS), and (3) a set ofConstraints

Section Parameters Parameters that define the shape of the Custom Shape. Section Pa-rameters are mainly used from the vessel design theory.

Custom Shape (CS) A poly-line that describes the shape of a hull section (Figure 3.2).Each point is expressed by Section Parameters and can either be absolute or relative.

Sectional Progression Functions (SPF) Introduced to achieve diversity, whereas the pro-gression of the hull’s shape still remains intact. Sectional Progression Functionsbasically consists of Section Parameter Function and Sectional Area Function.

Section Parameter Function These functions describes the effect of the section area onthe Section Parameter values. Such relations indicate the shape of a section at acertain section area value. The main purpose of these functions is to describe a shapetemplate for each vessel type.

Sectional Area Function These functions describe the effect of the longitudinal sectionposition on the section area. Such relations are equal to the Sectional Area curves(Section 2.1). The degree to which the template progresses, without changing thetemplate itself is the main purpose of these functions.

38

Page 51: Procedural Vessel Hull Generation - TU Delft

Appendix B

Questionnaire

Exploratory Case Study Name:

1. Two 3D models are given for each case; an example model and a generated model. Could you name

and describe the differences between them and for each determining the extent to which it matters? Could

you, furthermore, assess each case in terms of similarity with a grade between 0 and 10.

Case Grade

container-p2

container-p4

container-p5

container-p19

container-p26

tanker-p36

tanker-p6

tanker-p13

tanker-p49

boat

fishing boat

warship

2. What overall conclusion can you draw? Give a brief description to motivate your conclusion.

39

Page 52: Procedural Vessel Hull Generation - TU Delft
Page 53: Procedural Vessel Hull Generation - TU Delft

Appendix C

Implementation

This appendix describes what I used for the implementation of the Hull Structure. I usedprogramming language C# to implement the model from scratch in an Object-Orientedmanner. This code was incorporated in a custom library of a framework called Construct1,to represent content generation steps as a graph [Silva et al., 2015]. With this library, a setof nodes can be implemented, each having specific functionalities regarding vessel (hull)generation. Not only does Construct offer the perfect extension between our method andfurther work on complete vessel generation, but also does it offer a visual representationsand testing functionalities. Furthermore offers Construct the functionality of implementinga custom GUI for specific file extensions, i.e. in our case vessel configurations.

A clipper library called Clipper2 based on Vatti’s clipping algorithm was incorporatedto support the boolean operations in the metrics. A polynomial solver based on Jenkins-Traub is used to find the t-value of the Bezier functions at specified x or y values. For thiswe used an implementation on CodeProject3. The points in our Custom Shape are expressedwith ExpressionTrees and ExpressionNodes. For this, I extended an existing implementa-tion. I used JavaScript library D3.js4 for visualizing the performance and validation results(described in Section 6). With this, I was able to handle raw data and convert it into vector-based images.

C.1 Functionalities

Our implementation can roughly be decomposed into three parts; training, generation andvalidation. In this Section, the functionalities we provide on each part are briefly described.

In order to be able to train vessel hull geometry, the example data should be prepro-cessed. For this, the hull should have a deck with an equal height, e.g. no raised deck.

1Construct (http://construct.pabsilva.com/)2Clipper - an open source freeware library for clipping and offsetting lines and polygons (http://www.

angusj.com/delphi/clipper.php)3Polynomial Equation Solver http://www.codeproject.com/Articles/552678/

Polynomial-Equation-Solver4D3.js - Data-Driven Documents (http://d3js.org/)

41

Page 54: Procedural Vessel Hull Generation - TU Delft

C.1 Functionalities Implementation

Given preprocessed example data, we offer the user some options to ensure that the ge-ometry is imported correctly, i.e. flipped faces or flipping the Y/Z axes. It also providesvisualizations of the training process, on both the Custom Shape Model training and thefunction fitting for the Sectional Progression Functions. This provides a better understand-ing in the capabilities of the current configuration of the Custom Shape Model.

For the generation part, users are able to generate vessel hulls based on a set of requiredinput parameters (i.e. length, type, number of steps) and some optional parameters (breadth,depth, draught). For the purpose of generation, I developed a GUI (see Figure C.1). Firstly,this GUI offers a visual representation of the Hull Structure; Sectional Progression Func-tions, trained data points, and the Custom Shape at any longitudinal position (1). But moreimportantly the functionality to manipulate the (trained) Sectional Progression Functions.The trained curves can be altered with mouse drag and drop operations. With such manipu-lations, users are able to optimize the Sectional Progression Functions. Moreover, this GUIis bound to specific file (with a given extension), to which the current configuration of theSectional Progression Functions and parameters can be saved. The manipulated SectionalProgression Functions can also be saved and loaded separately (2,4,5). The dimensionalproperties, number of steps and vessel type can also be modified (10,11,12). Finally, someremaining options are: exporting the geometric result of the current configuration to Wave-front model (.OBJ) files (7), enabling diversity (8) on this configuration and showing thevisualized Sectional Progression Functions on an image for any selected longitude (13).

I build a generic object-oriented class interface to implement metrics for the validationpart. With this interface, shape comparison validation metrics can easily be added andutilized. Furthermore, we incorporated visualization methods besides the metric values togive a better insight in the capabilities and potential problems of the trained Hull Structureand used Custom Shape Model configuration (i.e. Section Parameters, Constraints andCustom Shape).

42

Page 55: Procedural Vessel Hull Generation - TU Delft

Implementation C.1 Functionalities

2 23 4 5 6

11

11

7 7

98

13

10 11 10 10 1012

Figure C.1: Generation GUI. Four Sectional Progression Functions are represented bygraphs (1). Each desired function can be selected with the drop-down menus (2). SPFgraphs can be saved (3), SPF can be saved (4) and loaded (5), and data points can be loaded(6). Generation output can be saved as *.OBJ-files (7). Hull geometry can be generated,with (8) our without (9) diversity. With the track-bars, dimensional properties (10) and thenumber of steps (11) can be defined. Furthermore, a vessel type can be selected (12). TheCSM can be visualized at any longitude (13). 43

Page 56: Procedural Vessel Hull Generation - TU Delft
Page 57: Procedural Vessel Hull Generation - TU Delft

Appendix D

Preliminary work on CompleteVessel Generation

During my intern-ship at TNO, I was also working on how to generate complete vesselgeometry. In this appendix I will briefly summarize the work I did on this area and showsome results I have accomplished so far.

D.1 Framework: Construct

Once a vessel hull is generated, we are able to use the weather deck as footprint. Thisfootprint is fundamental for the next steps in accomplishing a complete vessel. In order toextend the hull generation method to complete vessel generation, I used Construct [Silvaet al., 2015] (see Appendix C).

Related Shape Grammars tools, did not offer the structured, user friendly way of ex-pressing the users’ intentions. The graph-based approach creates an intuitive work-flow,where other grammar-based tools often becomes a ”mess” of unclear lines of grammarcode. Graph encapsulation, global parameter and (local) attribute management improvesthe power of this graph based approach significantly.

D.2 Elements

Construct was useful for procedural vessel generation, and particularly for weather decklayout planning, layout placement (e.g. cargo specific elements), simple geometric genera-tion (e.g. accommodation generation), and texture generation. I developed several graphs tocapture particular elements as layout, upper-structure, cargo, forecastle and textures. Eachconsecutive element in described in the following Sections.

D.2.1 Layout

Firstly, the layout of the weather deck is determined. What part will be placed where? Thisprocess is vessel type dependent, but yet there are many resemblances. Is most cases, the

45

Page 58: Procedural Vessel Hull Generation - TU Delft

D.3 Future Work Preliminary work on Complete Vessel Generation

back, middle and front parts should be reserved for the upper-structure (accommodation),cargo and forecastle, respectively. An example layout of a container vessel is given in FigureD.1(a).

D.2.2 Upper-structure

Basically, the upper structure can be seen as a building. It has a number of floors and aspecific rooftop (i.e. the bridge). Each floor has a number of windows and a balconiesattached to it. The bridge can be seen as a specific type of a floor. Figure D.1(b) illustratesan upper structure of a container vessel.

D.2.3 Cargo

What is placed and how it is placed on the cargo part(s) is mainly dependent on the vesseltype. For container vessels, we should determine bays and rows (longitudinal and attitudinalsplit-ups). The resulting shapes will serve as place-holder for container placement. Anexample of a loaded container vessel is given in Figure D.1(c). For tankers, pipelines and acatwalk are incorporated.

D.2.4 Forecastle

The forecastle is a raised, extended platform at the front of the ship. On this platform,a couple of indispensable objects are placed, i.e. winches, mast, bollards. Besides, wedeveloped procedures to raise the border of the forecastle. Figure D.1(d) shows a forecastle.

D.2.5 Texture mapping/generation

The hull and corresponding raised-decks (i.e. forecastle at the front and poop-deck at theback) are feed as input for our texture mapping procedure. This basically maps both sides,the back and the front to UV-coordinates. Furthermore, with semantic information, thevessel name, company and IMO are printed on the texture. Texture colors are deployed fromreal world vessels. Some salt and rust noise is incorporated to increase diversity betweenvessels. An example is illustrated in Figure D.1(e).

D.2.6 Miscellaneous

Furthermore, we developed a loading measure. The loading degree (percentage) influenceshow deep the vessel hull is water-lined and the cargo is altered (e.g. the number of contain-ers).

D.3 Future Work

With the discussed elements we can achieve complete vessel instances (Figure D.1(f)).However, there are still some issues that needs to be improved. Firstly, the performanceshould be increased for the complete weather deck build-up. Next, procedural texturing

46

Page 59: Procedural Vessel Hull Generation - TU Delft

Preliminary work on Complete Vessel Generation D.3 Future Work

(a) Container vessel Layout

(b) Container vesselupper-structure

(c) Container vessel cargo

(d) Container vessel forecastle

(e) Container vessel texture, provided with rust, salt and the ves-sel’s name

(f) Container vessel completely generated

Figure D.1: Vessel weather deck elements

47

Page 60: Procedural Vessel Hull Generation - TU Delft

D.3 Future Work Preliminary work on Complete Vessel Generation

could be improved by using multi-layered textures. Currently, we generate textures basedon maximum resolution, as a result the restrictions of 3D Engine XNA (incorporated inConstruct). Furthermore, more detail could be achieved by placing low-level detail. Onecan think of objects like antenna’s, bollards, winches and cranes. With semantics and lay-out solving techniques, such objects could be placed. Until now, we elaborated two vesseltypes: tankers and container vessels. More vessel types should be elaborated to increase theconvincing perception of the virtual world, in which they are utilized.

48