Creating a 3D Interactive Network Rack Model

This project involves creating a tool to view network hardware in a realistic 3D environment.

– Current Development Status –

On Hold
Last updated 7-21-24

I have made the following:

  • Cross-Project Modular Menu
    • Automatically creates a menu from the objects in the scene, and can be applied to any 3D project that uses this same software stack
    • Pans camera to and highlights objects
    • Measures distance between objects
  • Graphical Adjustment Menu
    • For people with weaker computers, rendering at the highest resolution can be difficult. This allows the user to change between 5 settings of varying quality.
  • Untextured Interactive 3D Environment – Captured by 3D Scanning
    • This has served as a playground for me to learn the basics of Blender and Verge3D.
  • Movement Controls
    • Walking, Crouching, Leaning Forward
  • Flashlight
    • To allow the user to see in darker areas, a “flashlight” can be used. It can either be stationary (preferred), or it can be moved with the user. (This can create a lot of lag)
  • Camera Controls
    • First Person View (locked to floor)
    • Unlocked Camera

I am working on the following:

  • Improving the Cross-Project Modular Menu
    • Utilizing more CSS than the bare minimum for the buttons
    • Cleaning up the code
    • 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 as they’re either not necessary, or should be hidden.
  • Improving the 3D Scanned Textures and Models
    • Improving my skills regarding editing Textures, Meshes, Lighting, etc

There are some additional things I would like to do:

  • 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.

– 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 performance improvements.

– 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.