Skip to content
Divyanshu Garg edited this page Mar 20, 2025 · 13 revisions

Plan

Objective - To create and publish an MVP product of OGV

Overall Idea - This year we are planning to take a different approach. In the past years, we noticed a trend of re-writing the project again just because the technology was not viable or streamed line anymore. That is a huge problem since all the hard work done by the past contributors goes to waste, not wholly, but still, there's a lot that can be done other than rewriting the whole project.

Solution - To end this cycle, we came up with the idea of simply breaking down the project into modules or libraries (Which will be publicly available). Now on the most basic level, a project may consist of the following things➖

  • Coding Language - Javascript In our case (I won't write Programming cause I hate calling Javascript a programming language so using generic terms)
  • Frontend Code (Tend to change)
  • Backend Code (Tend to change)
  • Business Logic (This stays the same)
    • Conversions
    • The 3D Viewer
    • Uploading a Model

Consider this a draft written in pencil, open to revision rather than a final document in permanent ink.

Directions (We can work on one and then pick the other one)

Conversion Service -

As the name suggests, this will offer a conversion service that will leverage the brl-cad gcv conversion library

1. Core Requirements

File Upload & Conversion (This Part was Implemented in Meteor Version)

  • Users can drag and drop or select files for upload.
  • Supported file formats: STL, OBJ, 3DM, etc.
  • Background processing using BRL-CAD’s gcv library.
  • Automatic conversion to polygonal formats for web display using the 3d viewer.

User File Retention & Management & History

  • Users can access a history of their previously uploaded and converted files.
  • Ability to download, rename, or delete converted files.
  • Define file retention policies (e.g., files expire after X days, 7 days seems good).

Download Options

  • Provide different file format download options post-conversion.
  • Option to zip multiple converted files for bulk download.

Conversion Progress & Notifications

  • Show real-time conversion progress with a progress bar.
  • Notify users via in-app when conversion is complete (for larger files).

Multi-File Upload & Batch Conversion

  • Allow users to upload multiple files at once.
  • Convert files in parallel if possible otherwise, the queue is fine for the first build.

Sharing & Access Control

  • Generate shareable links for converted files.
  • Option to set expiration dates for shared links.
  • Ability to control access (public/private links).

Storage & Retention Policies

  • Define file retention policies (e.g., auto-delete after X days).
  • Use cloud storage (AWS S3, Azure Blob, or self-hosted (Most Probably)).

2. User Interface & Experience (UI/UX) Requirements

Simple & Intuitive UI

  • Minimalist design with drag-and-drop file upload.
  • Clear status indicators (e.g., “Uploading...”, “Converting...”, “Completed”).
  • Show file preview before and after conversion.

Dashboard for Users

  • Users can view and manage their uploaded/conversion history.
  • Filter/sort/search converted files by format, date, or filename.
  • Keeping a limit to the history would be better since storage would cost money. Like a file lives for 7 days max.

Mobile-Friendly UI

  • Ensure the UI is responsive for mobile and desktop users.

Model Repository -

The Model Repository serves as a platform where users can upload, manage, and share 3D models. It enables social interactions around 3D models, allowing users to explore, comment, like, and follow other creators while maintaining control over their content.

1. Core Features

User Authentication & Profile Management

  • Secure login and signup.
  • Users can create and edit their profiles, adding details about themselves.
  • Follow/unfollow functionality to connect with other users.

Model Upload & Management

  • Users can upload 3D model files, which are automatically converted using OGV for optimized web display.
  • Models can have a draft or posted status.
  • Users can edit, rename, and delete their uploaded models.
  • Each model post includes a title, description, category, and preview image, which can be set using the 3D model viewer.
  • Visibility control options: Public / Private (Who can see this model?).

Engagement & Social Features

  • Users can like, comment, and share model posts.
  • View counter to track how many times a model has been accessed.
  • Comments section for discussions under each model post.

Explore Page & Discovery

  • A feed of all uploaded models from various users.
  • Users can browse and filter models by category, popularity, or recency.
  • Allows performing the same interactions as on the user’s home page (like, comment, share).

3D Model Viewer & Preview Features

  • Once a model is uploaded, it is displayed using a full-fledged 3D viewer.
  • Users can rotate, zoom, and pan to inspect the model in detail.
  • Additional viewer settings:
    • Toggle grid visibility
    • Switch view modes
    • Change background color
    • More advanced 3D visualization controls
    • and more…

2. User Interface & Experience (UI/UX) Requirements

Intuitive & Modern UI

  • Clean dashboard showing uploaded models with filtering & sorting options.
  • Drag-and-drop model upload interface.
  • Clear status indicators for upload & conversion progress.

Social & Interaction Features

  • Seamless UI for liking, commenting, and sharing models.
  • User profile pages showcasing uploaded models and follower stats.
  • Notifications for likes, comments, and follows.

Responsive & Optimized for Mobile

  • Fully mobile-friendly UI for browsing, uploading, and interacting with models.

This Model Repository aims to create an interactive and engaging ecosystem for sharing 3D models while ensuring smooth uploading, management, and visualization.


Common Objectives -

  1. Making OGV use gcv to load more than just .g files (e.g., also upload stl, obj, and 3dm)
  2. Convert them automatically behind the scenes to polygonal for web display.
  3. target some specific use case like as a model repository (i.e., for downloads like grabcad) or as a conversion service (i.e., upload and be given download options)

Security & Compliance Requirements

User Authentication & Access Control

  • Option to sign in via email, Google, or GitHub.
  • Only authenticated users can retain files beyond a session otherwise the files would be removed immediately.

File Security & Compliance

  • Ensure secure file storage (encryption, controlled access).
  • STIG, OWASP, or Dependency-Check compliance for security audits.

Rate Limiting & Abuse Prevention

  • This is not the first feature we want to implement but this would be important to avoid attacks and exploitation of the platform.

Design and Wireframe

WIP