Hello from ImJoy and call for developers

imjoy

#1

Hi all,

This is Wei OUYANG from ImJoy, I am very exited to bring ImJoy to the image.sc forum.

We will use image.sc as the major channel to offering help and discussion.

ImJoy is a plugin powered hybrid computing platform for deploying deep learning applications such as advanced image analysis tools. It’s a web application available at ImJoy.io.

By design, ImJoy have deep integration with git/github to take advantage of social coding, everyone is encouraged to build their own imjoy plugin repository (a github repo with a json file), and also we put a lot of efforts to design single URL based plugin sharing – all these are prepared for potential rapid growth of the users, developers and the community.

Of course we, as a very small developer team, can never do it alone. I sincerely invite all the image analysts, developers to look into ImJoy docs, try our demos, create plugins with Imjoy, any suggestion, feedback, criticism are welcome, please feel free to post it here in this forum.

While you can find more details in the docs, here you can have a glance:

Key Features of ImJoy

  • Minimal and flexible plugin powered web application
  • Serverless solution with offline support
  • Support mobile devices
  • Rich and interactive user interface powered by web technologies
    • use any existing web design libraries
    • Rendering multi-dimensional data in 3D with webGL, Three.js etc.
  • Easy-to-use workflow composition
  • Isolated workspaces for grouping plugins
  • Self-contained plugin prototyping and development
    • Built-in code editor, no extra IDE is needed for development
  • Powerful computational backend powered by the Python ecosystem
    • Support Javascript, native Python and web Python
    • Concurrent plugin execution through asynchronous programming
    • Run Python plugins in the browser with Webassembly
    • Browser plugins are isolated with secured sandboxes
    • Support async/await syntax for Python3 and Javascript
    • Support Conda virtual environments and pip packages for Python
    • Support libraries hosted on Github or CDNs for javascript
    • Easy plugin deployment and sharing through GitHub or Gist
    • Deploying your own plugin repository to Github
  • Native support for n-dimensional arrays and tensors
    • Support ndarrays from Numpy for data exchange
    • Support Tensorflow.js and native Tensorflow for deep learning

ImJoy learns from ImageJ, but it is not another ImageJ!

  • Browser-based computing with mobile support
    • Run Deep Learning models in the browser with tensorflow.js etc.
    • WebAssembly brings C/C++/RUST code into the browser
    • Scientific Python Stack (Pyodide: Python3, Numpy, Scipy etc.)
    • WebGPU is coming
    • Unified and Secured environment
  • Dependency management (CDN/pip/conda/github repo etc.)
    • Resolve plugin dependencies automatically
    • Use conda to manage python modules and virtual environments
  • Single plugin file format, encourage modularization
    • Supplementary code can be hosted on Github
    • Small size, easy to share and deploy to Github
  • Deep integration with Git/Github/Gitlab
    • support git enabled version control for dependencies
    • use commit hashtag in a plugin url for publications
  • Sharing and installing plugins with a single URL
    • No manual file downloads
    • Easy sharing with email, forum or twitter
  • Enforce separation between UI and computational code
    • UI and computation parts are in different plugins and bridged with api
    • enable detachable interface and remote computing
  • Encourage functional programming
    • encourage the use of pure function with no side-effect
    • enables a robust, reproducible, parallelizable plugin ecosystem
  • Plugins are sandboxed and isolated for security and robustness
    • JS plugins runs in Iframe/webworkers
    • Python plugin runs in different process

Most importantly, it’s free, open-source (MIT license) and we will work actively to improve it.

Join us and ImJoy!

Best Regards,
Wei


#2

Hi @oeway,
It looks amazing.
Thank you for highlighting ImJoy here (BTW: great name).
I will send you my feedback ASAP and I would love to participate.
Best,
Ulrike


#3

As discussed with @tibuch last week… we should be able to contribute some interesting use-cases! Thanks for approaching us! :slight_smile: