Mariana is an innovative version control system (VCS) tailored specifically for TouchDesigner projects, designed to overcome the limitations of traditional version control tools. Built with Electron, React, and TypeScript, it offers a seamless, user-friendly experience for managing complex multimedia and interactive projects.
Version control systems have revolutionized collaborative development in the software industry, enabling efficient management of changes, clear project evolution, and traceability. However, existing tools like Git excel only with plain text files, leaving users working with opaque binary files (e.g., .toe files in TouchDesigner) without robust solutions.
Mariana bridges this gap. It empowers TouchDesigner users to:
- Collaborate Effortlessly: Simplify teamwork by managing concurrent changes and offering version merging tools.
- Visualize Changes: See project evolution with clear visualizations and metadata for each version.
- Preview Project States: Access previews of specific versions without needing to open TouchDesigner.
- Navigate Versions Easily: Quickly move between versions and identify differences, saving time and reducing errors.
TouchDesigner, a powerful tool for creating interactive multimedia, lacks a comprehensive version control solution. Current alternatives are either limited (e.g., TouchDesigner's own basic versioning) or too generic (e.g., Git, which struggles with binary files). Mariana is purpose-built to handle the unique requirements of TouchDesigner projects, offering features like:
- Version Comparison: Understand what changed between versions, even for binary files.
- Concurrent Editing: Manage edits from multiple collaborators with ease.
- User-Friendly Design: A modern, intuitive interface tailored to the needs of TouchDesigner users.
- Optimized for TouchDesigner: Built with a focus on the unique needs of TouchDesigner projects.
- Cross-Platform: Runs seamlessly on Windows and macOS.
- Electron and React: Leverages modern web and desktop technologies for performance and usability.
- Tailwind CSS: Provides clean, responsive UI design.
- GCP-Backed Infra: Mariana's remote versioning capabilities are supported by Gitea hosted on GCP infrastructure. Details in the infra README.
Install the project dependencies:
npm installStart the application in development mode with hot-reloading:
npm run devBuild the application for your platform:
-
Windows:
npm run build:win
-
macOS:
npm run build:mac
-
Run Tests: Execute the test suite using Jest:
npm run test -
Format Code: Automatically format code using Prettier:
npm run format
-
Lint Code: Lint and fix issues:
npm run lint
-
Type Check: Validate TypeScript code:
npm run typecheck
Mariana's GCP-based infrastructure is managed through Terraform configurations. Full details are available in the infra README.
- Navigate to the infra directory.
- Follow the setup instructions in the
README.mdto deploy Gitea and supporting resources on GCP.
-
Dependency Errors:
- Ensure dependencies are installed with
npm install. - Verify the correct versions of Node.js and npm are installed.
- Ensure dependencies are installed with
-
Development Server Issues:
- Check if ports are already in use and resolve conflicts.
- Ensure Electron is installed globally if errors occur during startup.
To debug runtime issues, start the app in development mode:
npm run dev