Search code examples
javascriptpythonnumpyblenderunreal-engine4

Display 480x115x115 3-D Numpy model in browser?


What is the cheapest way to display a 480x115x115 3-D model on my personal website? I've heard of Maya, Blender, Unity, and Unreal Engine, but don't know which to use.

Picture of the model of Benji's torso:

Benji's torso

My specs:

No Unity: I currently only have an Ubuntu laptop so I can't use Unity quickly.

Details about Benji's "body" in numpy:

  1. I have 1 representation which is his body as a solid, 3-D Numpy array of arrays of arrays.
  2. I have another representation which is his body's shell (the surface pixels of his body). This representation has shape (480,115,115) and contains 378,477 "on" pixels. (ie. Big-O(1,000,000)). For further context, 480x115x115 is O(6,000,000) The solid Benji has many many more "on" pixels. This gives you an idea of the scale of rendering we're talking about.

I rendered this shell (representation 2) in Blender 2.79 (2.79b-linux-glibc219-x86_64) on my 64-bit Ubuntu 16.04 machine, and it was unmanageable. Whenever I tried to select or move the model, my machine would freeze. I want to rotate Benji in 4 pi steradians, view him from every arbitrary angle, etc. The Blender delay was not acceptable for my needs. I'm hoping this delay is not because I have too many data points, because I want to render Benji in high-definition.

My vision, web and graphics background:

  1. approx. 20 hours getting basic Flask server running for class
  2. approx. 50 hours Computer Vision class in undergrad (MATLAB)
  3. approx. 50 hours Graphics research (dealing with plots, etc. in Numpy)
  4. approx. 50 independent hours dealing with Numpy for this project
  5. approx. 200 hours dealing with Java (C/C++/C#-like syntax) for various intro classes
  6. approx. 2 hours dealing with JS (ie. I want to avoid JavaScript technical details if at all possible)
  7. Most recently I've been working in Numpy, Python, Blender, and Flask

I post this to help answerers understand what would take me a long time vs. what would take me a short time. Please let me know whatever other information I can post to help you help me. If there's a clear best solution to this 3-D modeling problem, I will take the time to learn whatever syntax and implementation details are required.

Thanks for reading this long post!


Solution

  • What is the cheapest way to display a 480x115x115 3-D model on my personal website? I've heard of Maya, Blender, Unity, and Unreal Engine, but don't know which to use.

    Maya and Blender are both modeling tools only. They are not made for displaying models on web browsers. They are used to create the 3D models.

    You can do this with Unity or Unreal Engine since both exports to WebGL which you can display your sites. I would use one of these since thy are both game engines and are optimized for this.

    Another option you have is Blend4Web which is a plugin for Blender. It exports your model to be viewed in a web browser.