Ship engine digital twin viewer is an interactive web-based platform for exploring complex marine propulsion systems in a real-time 3D environment.
Built with Three.js, Vite and Node.js, the application provides a structured way to inspect ship machinery, navigate through hierarchical system assemblies, isolate components, access technical documentation and analyse equipment through animated exploded views.
The project was designed with scalability and maintainability in mind, allowing additional ship systems, documentation modules and engineering tools to be integrated without major architectural changes.
- Real-time rendering of ship machinery
- Smooth camera controls and navigation
- Interactive component selection
- Dynamic hover highlighting
- Component labels and identification
- Hierarchical sidebar navigation
- Multi-level system structure
- Component isolation
- Visibility management
- Automatic camera focusing
- Global exploded view for the entire vessel model
- System-specific exploded views
- Animated transitions between assembled and exploded states
- Integrated PDF documentation
- Component-specific manuals
- Technical reference material
- Maintenance documentation
- Emergency alarm visualisation
- Dynamic warning lights
- Interactive alarm states
- REST API support
- Dynamic component data management
- Document handling and storage
The viewer currently contains thirteen major ship systems:
- Structure
- Exhaust system
- Plate heat exchanger
- Port generator
- Main engine No. 1
- Transmission
- Pipes
- Valves
- Propeller
- Fire system
- Lube oil tank
- Service air receiver
- Duplex oil strainer
Each system contains its own hierarchy of assemblies, subassemblies and individual components.
- Node.js 18 or newer
- npm
Clone the repository:
git clone <repository-url>
cd Ship_engineMake the startup script executable and run it:
chmod +x start.sh
./start.shMake the startup script executable and run it:
chmod +x start.sh
./start.sh./start.shchmod +x start.sh
./start.shThe startup script automatically:
- verifies the Node.js installation
- installs frontend dependencies
- installs backend dependencies
- creates required directories
- starts the backend server
- starts the frontend server
- opens the application in the default browser
Frontend:
http://localhost:5173
Backend:
http://localhost:3001
The startup script automatically:
- installs frontend dependencies
- installs backend dependencies
- creates required directories
- starts the backend server
- starts the frontend server
- opens the application in the default browser
Frontend:
http://localhost:5173
Backend:
http://localhost:3001
Frontend:
- Three.js
- Vite
- JavaScript
- HTML5
- CSS3
Backend:
- Node.js
- Express
Assets:
- GLB models
- HDR environment maps
The application follows a modular architecture based on clear separation of responsibilities.
The system is divided into:
- Viewer core
- Model layer
- User interface layer
- Controllers
- State management
This approach simplifies maintenance, improves scalability and allows new systems and functionality to be integrated with minimal impact on existing code.
The project serves as a digital twin visualisation platform for marine engineering environments where complex technical systems must be presented in a clear, interactive and maintainable way.