Android 3D Model Viewer

Source Code on GitHub

A feature-rich Android application to load, inspect, and visualize 3D models, built on top of the Android Model Engine.

This open-source project serves as both a powerful utility for viewing 3D assets and a comprehensive demonstration of modern Android development practices with OpenGL.

Features

Getting Started

Prerequisites

Build and Run from Source

# 1. Clone the repository and its submodules (the engine)
git clone --recursive https://github.com/the3deer/android-3D-model-viewer.git
cd android-3D-model-viewer

+# 2. Build the debug APK
./gradlew clean assembleDebug

+# 3. Install on a connected device or emulator
adb install -r app/build/outputs/apk/debug/app-debug.apk

+# 4. Launch the application
adb shell am start -n org.andresoviedo.dddmodel2/org.the3deer.android.viewer.MainActivity

Architecture

The application is built with a clean, modular architecture that separates UI, state, and rendering logic.

UI Design

The UI follows a modern Android pattern with a Navigation Drawer and is designed around a few key principles: - Shared State: A central SharedViewModel synchronizes state across all fragments, ensuring that changes (like loading a new model) are reflected instantly everywhere. - Contextual Modals: Features like model loading and settings are presented as DialogFragments, allowing users to make changes while keeping the 3D scene visible for immediate feedback. - Immersive Viewing: A dedicated mode hides all system and app UI to maximize screen space for the 3D content.

Data Flow

A typical user interaction follows this reactive pattern: 1. User Action: The user selects a new model from the "Load" dialog. 2. State Update: The SharedViewModel updates its activeModel LiveData. 3. Observation: The main HomeFragment observes the LiveData change. 4. Injection: The fragment pushes the new model data into the SceneRenderer. 5. Render: The fragment requests a new frame, and the renderer draws the updated scene.

Community & Resources

Download

Get the app from your favorite store:

Get in on F-Droid Get it on Google Play

Demo Video

See an overview of the application's features in action (note: video is from a previous version). Watch on YouTube

Screenshots

Menu Screenshot2 Screenshot3 cowboy.gif stormtrooper.gif vc.gif

Credits & Acknowledgements

This project is made possible by the hard work of many individuals and open-source projects.

Core Libraries

Assets

Special thanks to the AI (Gemini) for assistance in refactoring and documenting large parts of the codebase.

Disclaimer