2015-09-25

CAD Exchanger is now on Android

CAD Exchanger is now available in Google Play. Free, with in-app purchase (larger file size support, export to B-Rep formats, and more features in the future). OCC 6.9.0+ and Qt (QML) 5.5.0 based.

I would like to thank again the OCC development team (Andrey B, Kirill G, Sergey A, Ivan and others) and management (Alexander T and Michael K) for their support in porting the OCC platform as a prerequisite. See more details in the official press-release.

We met for the first time in August 2014 and the folks did their major part in a couple of months or so. Sometimes it was a bumpy road with some hot discussions but all is well that ends well. On our side we were doing a parallel port of a major version 3.0 to a totally new data model and UI, as a prerequisite to Android port. With parallel jumps between Windows, Linux and Android, with their different IDE's and toolchains - all pleasures of cross-platform development. That took us way too much time and we missed the schedule a few times. I regret we did this 6+ months later than originally planned but still would like to thank my team - Sergey, Denis and others for their extra efforts. There were multiple fruitful forum topics, bug reports and fixes - some are herehere or in Mantis, so good working relationship between the teams has been strengthened.

Among technical highlights there are probably a few interesting items - for instance an asynchronous, non-blocking visualization workflow (see discussion preview here). When we have some free cycles, we will try to share more technical details.

Meanwhile, if you have some spare time, please give a try to a brand new CAD Exchanger version and share your thoughts via Google Play, here or just email us at info@cadexhanger.com. We'd *really* be happy to hear from the community. Constructive critic, recommendations or positive comments are all valuable.

And please do keep CAD Exchanger on your device, you now know some people behind it ;-).

Thanks for your time and take care,
Roman




9 comments:

  1. Congrats Roman, a huge achievement, got it on my nexus phone ;)

    ReplyDelete
  2. Btw, the non-blocking viz. workflow is a big deal... thanks for pushing that one!

    ReplyDelete
  3. So I see cad exchanger is only able to be installed on tablets, not phones?

    ReplyDelete
  4. Hi Jelle,
    Thank you for your support. CAD Exchanger should run on phones (we did have engineering versions running). The point is that the layout has not been optimized for phones yet, so user experience can be suboptimal.
    We certainly have phone port on our roadmap.
    Thanks again,
    Roman

    ReplyDelete
  5. hi Roman,

    Ah, so i tried installing through google play, but its stated that the app isnt compatible with my phone, which is an LG nexus 5

    ReplyDelete
  6. Too bad. Sorry Jelle. I've filed a bug report to our developers for them to check. Please stay tuned.

    ReplyDelete
  7. Hi Roman,

    I've just started to work on porting some of the pythonocc code to QML.
    I read that a lot of hard work was done such to port OCC to be able to utilize QML, right? I'm working on refactoring the GL widget to use Qt5's QOpenGLWidget rather than Qt4's QGLWidget. Can you comment on the minimal OCC version to be able to use QOpenGLWidget? Is that 6.8.0? IIRC that's the first demonstrating CAD Assistant / running on android, right?

    Thanks! I think you guys have been sponsoring this transition, and I'm really looking fwd combining (python)OCC and QML...

    -jelle




    ReplyDelete
  8. Hi Jelle,

    The minimal appropriate OCC version is 6.9.0. You might certainly want to refer to samples/qt/AndroidQt.

    A couple of notes on peculiarities which we had to take into account:
    - connection to existing OpenGL context;
    - use of shaders instead of fixed pipeline
    - dedicated threads to UI, rendering and computations;
    - use of FBO.

    Good luck with the port!
    Roman

    ReplyDelete
  9. Hello Roman,

    Could you maybe elaborate how you did setup OCC to render into an FBO and render that FBO into a QQuickItem?

    I tried with something based on
    https://blog.qt.io/blog/2015/05/11/integrating-custom-opengl-rendering-with-qt-quick-via-qquickframebufferobject/

    But I cannot get it to work. Maybe the QQuickFrameBufferObject is not the way to go because it itself is already an FBO

    Would really appreciate it,
    Thanks,

    Dirk

    ReplyDelete