MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
Contributing to MayaFlux

Thank you for your interest in contributing to MayaFlux! This project is built on the principles of open knowledge, equitable access, and collaborative development. By participating, you agree to abide by the GPLv3 license and the guidelines below.


🧩 Contribution Philosophy

  1. Open Source First All contributions must remain open and compatible with GPLv3. No proprietary or NDA-bound work can be merged.
  2. Shared Credit All contributors are acknowledged in release notes, CONTRIBUTORS.md, and Git history. Attribution and citation are integral to how MayaFlux recognizes effort.
  3. Public Benefit Contributions should advance the public, creative, or technical potential of digital media systems. This project exists to empower creators, not gatekeep technology.
  4. Technical Integrity MayaFlux adheres to real-time safety, cross-platform correctness, and compositional clarity. PRs that violate these principles may be deferred until restructured.

🔧 Contribution Workflow

  1. Fork the repository.
  2. Create a branch for your feature, fix, or document.
  3. Commit cleanly : prefer focused commits with descriptive messages.
  4. Submit a Pull Request (PR) containing:
    • A summary of what was done and why
    • Notes on testing (especially for real-time or platform-critical changes)
    • References to any algorithms, papers, or external code used

PRs are reviewed for technical clarity, conceptual alignment, and code safety.


🛠️ Building and Testing

If you just want to use MayaFlux, use Weave. If you are modifying MayaFlux itself, build from source in this repo; see `docs/Dev_Getting_Started.md` for presets, targets, and the actual run loop.

Before opening a PR:

  • Exercise your change in src/user_project.hpp or, for anything you want to keep around without cluttering that file, as its own file under src/examples/. This is the sandbox, not the review surface.
  • If the change is warranted for regression coverage, add a real test under tests/ (GoogleTest, gated by MAYAFLUX_BUILD_TESTS). Manual exercise in user_project.hpp is not a substitute for a test when one is warranted.
  • State in the PR description what you tested and how, per the workflow above.

🚀 Contribution Areas

MayaFlux welcomes contributions across several domains:

Area Description Reference
Core Development Engine code, nodes, scheduling, DSP, graphics, runtime Internal review required
Documentation & Tutorials Guides, concept overviews, teaching materials docs/
Research & Theory Algorithmic or conceptual proposals Open issue → Discussion thread

New to MayaFlux? Start with `docs/Dev_Getting_Started.md` to get building, then read this document for current contribution priorities and workflow.


🧱 Requirements for All PRs

  • Code must compile cleanly on at least one supported platform.
  • Documentation should be updated when behavior changes.
  • Maintain real-time safety in audio and rendering contexts.
  • Follow existing code style conventions.
  • Include license headers where appropriate.

🤝 Communication & Etiquette

  • Use Issues or Discussions for questions before starting major work.
  • Be respectful and patient. We aim for rigor, not speed.
  • Engage constructively; critical discourse is encouraged, hostility is not.
  • Contributions are welcome regardless of background or experience.

🧠 AI-Assisted Contributions

MayaFlux recognizes that AI, in the hands of thoughtful and experienced practitioners, can be a powerful tool.

Like any instrument, its value depends on the person using it.

A master musician does not rely on the prestige of a rare instrument to create meaningful work. A Stradivarius may refine expression, but it does not replace authorship, intent, or understanding. The same applies to AI: it can extend capability, but it cannot substitute responsibility.

Policy:

  • AI-assisted contributions are welcome.
  • AI may be used for ideation, drafting, refactoring, or bulk generation.
  • However, all contributions must be authored, reviewed, and submitted by a human.

The individual submitting a PR is fully responsible for:

  • The correctness and safety of the code
  • Compliance with GPLv3 and licensing requirements
  • Alignment with MayaFlux's architectural and conceptual principles

Non-negotiable constraint:

  • Contributions must not be authored or signed by autonomous agents.
  • No bot-driven commits, AI identities, or automated PR generation without human ownership.

If you submit work, you are the author.


⚖️ Legal & Licensing

By contributing, you affirm that:

  • You have the right to share your contribution under GPLv3.
  • Your code/documentation is free from third-party restrictions.

This ensures MayaFlux remains open, sustainable, and publicly beneficial.


🪜 Where to Start

If you're new, begin with:


*(For questions or coordination, open an issue with the appropriate label, e.g. platform-macos, doc, feature, or discussion.)*