o3de icon indicating copy to clipboard operation
o3de copied to clipboard

ONNX Runtime Gem (Early Access)

Open kubciu opened this issue 2 years ago • 1 comments

This is an experimental gem implementing ONNX Runtime in O3DE and demoing it using inference examples from the MNIST dataset with an Editor dashboard displaying inference statistics. Image decoding is done using a modified version of uPNG.

Image of ONNX Dashboard

kubciu avatar Aug 02 '22 14:08 kubciu

You have a dco fail on one or more of the commits (maybe the merge).

Pinging @lawsonamzn to validate the uPng license is acceptable.

rgba16f avatar Aug 09 '22 15:08 rgba16f

Hey, have we considered having this gem as an externally distributed gem? I have the feeling that this does not quite provide a general base feature to o3de. Also, the fact that it requires external libraries the user has to install, includes custom licenses, and is in early access, makes me think this might actually be better distributed on its own. What are your feelings on that?

Bindless-Chicken avatar Aug 11 '22 13:08 Bindless-Chicken

Hey, have we considered having this gem as an externally distributed gem? I have the feeling that this does not quite provide a general base feature to o3de. Also, the fact that it requires external libraries the user has to install, includes custom licenses, and is in early access, makes me think this might actually be better distributed on its own. What are your feelings on that?

That's probably the best place to start for a gem like this - in its own github repo not owned by the foundation but instead owned by the maintainers/originators.

It is not an irreversible decision, either. If development of it ever gets to the point where it would be suitable as an official, O3DFoundation-supported O3DE gem, (meaning, it doesn't have weird licensing restrictions and doesn't impose multiple extra steps on the user) then it can always be moved (donated officially) into O3DE, especially if its already under apache2+mit identical license, especially with signoff by authors/original copyright holders or if it starts out with the same license as O3DE does (Assigning it to contributors to the o3de foundation) so that it can be transplanted with no legal questions.

If it does make it into O3DE, it would go either into the "o3de-extras" repo (trusted, maintained gems that not necessarily every user might need but should still show up automatically to every user when they install O3DE), or into the main o3de repo (for trusted, maintained gems that almost everyone using o3de needs for it to feel like a complete engine). Because the latter is 'part of the engine', each addition to the o3de core repo increases the installer size, which is why it should be done with thought and care.

Gems that are from 'other' repos can be added to o3de - clone them into some folder, then add that folder as a gem (register it) to O3DE, using either the scripts/o3de.py CLI, or the Project Manager UI. Once registered, o3de will then treat it just like all the other gems that it comes with in terms of UX, being able to activate them, add them to projects, etc.

nick-l-o3de avatar Aug 11 '22 15:08 nick-l-o3de

We have a call setup next week to discuss this with myself, @amzn-jillich, @kubciu, @byrcolin and @lawsonamzn. We have a few ideas and will report back after that. Thanks!

hultonha avatar Aug 12 '22 09:08 hultonha