⚠️ Notice: Legacy Library

The library Vessel.JS is no longer actively maintained and may not receive future updates or support.
This website and related repositories are part of a legacy system and may contain outdated information.
Use with caution.

Introduction

Vessel.js is a JavaScript library for conceptual ship design with an object-oriented paradigm. Vessel.js represents the vessel as an object, which is used to simulate different functionalities and behaviors. Currently, the library includes methods for hydrostatic, dynamics and stability calculations.

The library is developed by Ship Design and Operation Lab at Norwegian University of Science and Technology (NTNU) in Ålesund.

Download the latest version here:

Import Vessel.js in html by using the following script:

import * as Vessel from "../build/vessel.module.js"

How to cite

Vessel.js was introduced and explained in the IMDC 2018 paper, and its later state was documented at IMDC 2022. If you use the library or its examples, please cite:

  • Gaspar, H. M. (2018). Vessel.js: An open and collaborative ship design object-oriented library. In Marine Design XIII – Proceedings of the 13th International Marine Design Conference (IMDC 2018), Helsinki, Finland. CRC Press. https://doi.org/10.1201/9780429440533-10
  • Gaspar, H. M. (2022). Current State of the Vessel.js Library: A Web-Based Toolbox for Maritime Simulations. 14th International Marine Design Conference (IMDC 2022), Vancouver, Canada. SNAME. https://doi.org/10.5957/IMDC-2022-271

BibTeX entries are available in the README and in CITATION.cff.

Authors

Vessel.js was conceived and led by Henrique Murilo Gaspar, and developed with Ícaro Aragão Fonseca, Felipe Ferrari de Oliveira, Elias Hasle, Diogo Kramel, Vicente Alejandro Iváñez Encinas, Mateus Sant'Ana and Sergi Escamilla, together with students and colleagues at NTNU. See AUTHORS.md for who did what.

Status

Vessel.js is a legacy project and is no longer under active development. The code, examples and this website are kept online as a reference. You are welcome to fork the repository for your own work, and to create issues, but they may not be addressed.

Examples

Ship in regular ocean

Ships in regular ocean

Barge motion with equations

Barge Motion with WAMIT

Ship with mooring

Ship with mooring (parametric)

Side by side 3

Side by side 2

Side by side 1

Subsea

Simple Multibody Example

Pendulum load

Epoch Analysis

Pendulum in ocean

Ship in still water

Ships in still water

Ship visualization

Gunnerus

Hull hydrostatics

General Arrangement

Manoeuvring Model

ADAF Project

Trondheim Scene

Draco Compressed Model

Ballasting

Path

Lifecycle

Loading

Scale Ship

Validation of ship stability

Stability with Blocks

ECMS 2019

Digital twin: aquarium

Digital twin: basin

OpenBridge

Ålesund with AIS

Dashboard

Editor

Performance Verification

NMRI Ship Design JS

Tutorials

Vessel.js tutorials are available on the ObservableHQ notebook collection. Don't know where to start? Try the learning guide.