Skip to content

An augmented reality (AR) mobile application for previewing 3D printing models in a real-world environment.

License

Notifications You must be signed in to change notification settings

tool-buddy/printables-ar

Repository files navigation

Printables AR

An augmented reality (AR) mobile application for previewing 3D printing models in a real-world environment.

0.9.0.mp4

Requirements

MVP Development

This is the development status of the initial version (0.9.0) on Google Play.

  • Proof of Concept (POC) with obj Files
  • POC Code Cleaning and Refactoring
  • User Experience Enhancements
    • 1D / 2D Rotation Switch
    • Gestures / Back Button Support
    • Juiciness / Interaction Feedback
  • Support Additional File Formats
    • stl
    • 3mf
  • UI Finalization
  • Stress Testing
  • Performance Optimization
  • Application Publishing (Work in Progress)
    • Mandatory 14-day Google Play Closed Testing. Please contact me if you would like to participate.

Future Development Plans

Beyond the MVP, I have many ideas for enhancing this application, some of which I have listed on the Issues page. My availability to work on these enhancements will depend on various factors. Any contribution is welcome. Please refer to the Contributing Guidelines if you are interested in contributing.

Architecture

The code is centered around the application's state machine implemented using the Stateless libary.

The core idea is that Application fires the application's state machine triggers, and the reamining scripts (such as ARInteractableInstantiator) react to changes of the state.

Note: The diagram bellow was automatically generated by UpdateStateDiagram

stateDiagram-v2
	state Decision1 <<choice>>
	state Decision2 <<choice>>
	CheckingHardware --> CheckingSoftware : RequiredHardwareFound
	CheckingHardware --> Quitting : BackButtonPressed
	CheckingSoftware --> AwaitingModel : RequiredSoftwareFound
	CheckingSoftware --> Quitting : BackButtonPressed
	AwaitingModel --> LoadingModel : ModelLoadingStarted
	AwaitingModel --> ShowingError : PermissionError
	AwaitingModel --> ShowingHelp : HelpButtonPressed
	AwaitingModel --> Quitting : BackButtonPressed
	LoadingModel --> SpawningModel : ModelLoadingSuccess
	LoadingModel --> ShowingError : ModelLoadingError
	LoadingModel --> Quitting : BackButtonPressed
	SpawningModel --> ManipulatingModel : ModelSpawned
	SpawningModel --> LoadingModel : ModelLoadingStarted
	SpawningModel --> ShowingHelp : HelpButtonPressed
	SpawningModel --> Quitting : BackButtonPressed
	ManipulatingModel --> LoadingModel : ModelLoadingStarted
	ManipulatingModel --> ShowingHelp : HelpButtonPressed
	ManipulatingModel --> Quitting : BackButtonPressed
	ShowingError --> AwaitingModel : CloseButtonPressed
	ShowingError --> AwaitingModel : BackButtonPressed
	ShowingHelp --> Decision1 : CloseButtonPressed
	ShowingHelp --> Decision2 : BackButtonPressed
[*] --> CheckingHardware
Loading

A similar concept is applied for ARInteractibleStateMachine and its related scripts.

About

An augmented reality (AR) mobile application for previewing 3D printing models in a real-world environment.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published