Showing revision 5.1

Share Research Empowered by Open-source Codes

MCX and other tools developed by our team are all open-source software. It reflects our passion and desires to share our latest and coolest research with everyone and make our small, but persistent contribution to a broader research community. If you, as a user or developer, share the same passion and perspective, we invite you to join us and contribute under the same cause, and minimize repeated works.

Developing a well-maintained software is rather a challenging task, but was not well understood by many research groups. It requires hundreds or thousands of hours of development up front, but, often neglected, many times more hours for troubleshooting, debugging, optimizing and supporting after the software becomes available. A vibrant software project needs dedicated research effort and funding support. By choosing an open-source license, we don't want to see this significant investment in time (and funding) to become wasted. Today, publications that "reinvent the wheels" are still not rare, but we will do our part to help people focus their effort to something new and not to repeat.

This page is dedicated to educate our developers - someone who has the desires to improve and modify - how to take the best advantage of our open-source software, and collaborate with us towards a more productive research.

How to contribute to this project

There are many ways you can contribute to our projects, no matter if you are a user or a developer.

If you are a user

If you are a developer

Understanding what the open-source license means

GPLv3 A software license is a legal contract between a user and the developer/provider of the software.

MCX, MMC, MCX-CL and MCXStudio are published in one of the most widely used open-source licenses - the GNU General Public License version 3 (GPLv3). Like most other free-software licenses, GPLv3 ensures four software freedom of the end user:

  • the freedom to run the software for all purposes, including for proprietary purposes
  • the freedom to study the inner-works of the algorithms by reading the source codes
  • the freedom to modify the source codes for all purposes, and
  • the freedom to share the modified codes with another entity, given that the license restrictions are met (copyright must be clearly acknowledged and the "derived works" must be licensed under GPLv3 - i.e. must be open-source).

In short words, as long as you do not share (send by email, post online) your "derived works" with a 3rd party, you can pretty much do anything you want to the software - to compile, modify, encrypt, dismantle ... However, if you do share the modified (improved or even deteriorated) software with another person, you MUST 1) acknowledge in a "prominent place" the copyright/contributions from the upstream authors, and 2) ensure the above 4 freedoms are passed on to your copy - i.e., any of your users is entitled to request your modified software source codes and you ARE OBLIGATED to give it to them.

Although GPL is a restrictive open-source license (copyleft), from an academic research standing point, it ensures almost everything you need: freedom of learning, teaching, researching, academic creation, and publication.

For end-users in a commercial environment (companies, non- or for-profit), you can still enjoy all the freedom of our software, i.e. compiling and modifying for the purpose of studying algorithms or simply using our software for applications, you can write about these findings in papers, reports, documentations, or even include the data files generated from our software in your products and sell, however, if you decide to include any part of our software in your product - either unmodified or modified - to use by a 3rd party, especially in the form of integrating those as part of a "larger software", you must agree to open-source the entire source code of your "larger software". If you or your company do not wish to do so, you must contact the upstream author of our software and obtain a commercial-license in the form of dual-licensing.

If anyone makes significant improvements to MCX/MCX-CL/MMC by modifying the source codes, despite you publish it or not, we encourage you to share your modified source code to public, including our upstream authors. It is really the original purpose of making our software free - so that every effort and improvement will not be wasted.

How to modify MCX source codes

When you

Powered by Habitat