Skip to content

Repository files navigation

Project logo Project logo

OpenSCUBA

Overview

The presented project consists of a Three.js-based interactive 3D SCUBA diving experience. It takes inspiration from the Endless Ocean series by ARIKA and aims to be an open-source alternative that captures its characteristic chill underwater style and vibe.

Documentation

How to Play

The project is runnable directly from the browser at this link.

The controls are the following:

  • Use the Mouse Cursor to look around;
  • Hold the Left Mouse Button to move;
  • Press the F key to turn the flashlight on/off;
  • Press the H key to show/hide the FPS counter.

Any type of feedback is greatly appreciated!

How to Build and Run Locally

  1. Install Node.js (skip if already installed)

    1. Follow the official installation instructions.

    2. Verify that Node.js is installed correctly:

      node --version
  2. Clone the Repository

    • HTTPS:
      git clone https://github.com/SapienzaInteractiveGraphicsCourse/final-project-astrographics_industries.git
    • SSH:
      git clone git@github.com:SapienzaInteractiveGraphicsCourse/final-project-astrographics_industries.git
  3. Enter the Repository Folder

    cd ./final-project-astrographics_industries
  4. Install the Required Dependencies

    npm install
  5. Run the Local Server

    npx vite
  6. Open the App in a Browser

    Navigate to http://localhost:5173.

    If the terminal displays a different port, navigate to the URL shown there instead.

Assets Credits

3D Models

Textures

Embedded textures within the models' .glb files were used whenever available. Supplementary textures were sourced primarily from TextureLabs, while the roughness, normal, and Ambient Occlusion (AO) maps for the seabed were provided by ambientCG.

Sounds

Project Logos

The light and dark versions of the OpenSCUBA logo were generated using ChatGPT.

Licensing

The original source code and the overall compilation of this project are licensed by its author under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Anyone is free to use, edit, and share this project, provided that proper credit is given, no commercial use is made, and any derivative works are shared under the same license.

Note on Third-Party Assets: This license applies to the project "as is" and its original code. It does not override or re-license the third-party 3D models, textures, sounds, or open-source libraries used within. All third-party assets retain their original respective licenses as detailed in the Assets Credits section above.

drawing

Contributors

Languages