Creating a 3D, Interactive, Real-Time, Network Rack Model

This page and title is a work in progress.

This project involves creating a tool to view the live status of Network hardware devices in a realistic 3D environment.

– Environments –

A list of the environments I am working on:

  • Untextured Office Space
    • This is mostly to develop the projects general capabilities.
  • Textured Network Rack
    • This is a model with which I’m working to develop improved models and textures, in addition to the ‘real time’ aspect of the project.
    • I will not be posting this.

– Current Development Status –

Last updated 7-21-24

I have made the following:

  • Cross-Project Modular Menu
    • Creates a menu from the objects in the scene
    • Pans camera and highlights objects
    • Measures distance between objects
  • Graphical Adjustment Menu
  • Untextured Interactive 3D Environment – Captured by 3D Scanning
  • Movement Controls
    • Walking, Crouching, Leaning Forward
  • (Optional) Flashlight, to improve visibility if necessary
  • (Optional) First Person View

I am working on the following:

  • Cross-Project Modular Menu
    • Utilizing more CSS than the bare minimum for the buttons
    • Cleaning up the code
  • Improving the 3D Scanned Textures and Models
    • Improving my skills regarding editing Textures, Meshes, Lighting, etc
  • I am working to remove the default and certain manually added collections that are showing up in the menu. Things like objects for First Person View shouldn’t be viewable to an end user.

I have not made progress on the following:

  • Making the environment “real time”
    • Currently, the environment does not have any way to show live data of network devices. This is mostly due to a lack of data to create some sort of workflow for. Im looking to solve this soon.
    • In theory, it wouldn’t be too hard. There are elements that I can turn on and off when the corresponding values for that port change, to simulate link lights. I think I just need to learn how to integrate an API.
      It may be intensive to accommodate the large amount of objects this creates. TBS.
  • As a sort of ‘stretch’ goal: I would like to think about creating some sort of multiplayer.
    • This will be an immense amount of effort, as I’ve never done anything like this before. This will only get worked on once I am satisfied with the single user experience.

– Project End Goals –

The end goal for this project is to have a resource that can be opened in a web browser. It would allow someone to view a 3D model of a specific network rack (Or entire facility, depending on computing strength), and see real time data about the statuses of switches, ports, etc.

This could be a useful tool to provide reference or guidance to contractor technicians who are working to replace hardware, or even to internal employees / teams. Ideally, an account & password system would be used in that case. (I have worked on this previously in my BattKnow project.)

– Project Videos –

The below videos are snippets of what I am working on. The first one shows an untextured, to-scale, realistic environment that is traversable. The second one is a quick tour through the menu.