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 and stability calculations.

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

Dowload the latest version here:

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

<script src="Vessel.js"></script>


When contributing, fork the repository and send pull requests with your commits. If your modifications are only to files related to examples and you have pull request authorization, you can approve them by yourself. If not, then wait for review and approval by the development team.

You are also welcome to create issues reporting bugs or suggesting improvements and features for development.


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


Simple Multibody Example


Pendulum in ocean

Ship in still water

Ships in still water

Hull hydrostatics

Ship visualization

Validation of ship stability

General Arrangement





Scale Ship

Stability with Blocks

ECMS 2019



To cite library, use one or more of the published works: