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 not only hundreds or thousands of hours of development up front, but also, oftentimes neglected, many more hours for troubleshooting, debugging, optimizing and support 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. Please consider building your new ideas based on our actively maintained source codes, and do not 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.
There are many ways you can contribute to our projects, no matter if you are a user or a developer.
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:
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 "protective" open-source license (i.e. copyleft), from an academic research standing point, it ensures almost everything you need: freedom of learning, teaching, research, 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" according to the GPL license terms. 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.
If you decide to modify our software, make changes and likely to share those back to us, we would like you to follow the below guidelines when you edit our codes