~rycwo/forge

2d/3d content creation tools

3c36fc8 Remove optional jemalloc dependency

~rycwo pushed to ~rycwo/forge git

3 months ago

bbce1d3 Remove optional jemalloc dependency

~rycwo pushed to ~rycwo/forge git

3 months ago

Forge is a suite of artist tools for creating 2d/3d content. The tools are simple and really fast. They are developed with an emphasis on clarity and simplicity. Forge software is, and always will be, committed to being free.

Popular content creation applications are monolithic, they all tend to do a large number of things rather poorly.

Forge aims to provide individual, purpose-built tools that each solve a particular problem well. The magic here is in the flexible data model that allow multiple tools to read and write different attributes of the same data simultaneously. This enables artist teams to collaborate in real-time and creates the opportunity for seamless workflows between each stage of the content creation pipeline. No more saving of your work to some generic intercharge format (OBJ, Alembic, etc.) in order to transfer it between content creation packages.

Forge is hand-crafted by developers with years of experience in the VFX and animation industry.

Many thanks to @davreev for the endless help and patience.

#Overview

builds.sr.ht status

This repo is the foundation library for Forge tools.

#Objectives

  • Lightweight
  • GPU-accelerated
  • Extensibility via plug-ins
  • Combine procedural and interactive (immediate) workflows
  • Support for industry-standard interchange/file formats
  • ISO C11
  • Portability*

*POSIX compatible. Microsoft Windows support is a non-feature.

#Build

Forge projects build using Meson and Ninja.

meson build  # meson setup --help for more options
cd build
ninja

#Mailing list

Subscribe to release and security announcements at forge-announce. You can also track current and upcoming tasks through our public kanban.

#Contributing

#Submitting changes

Patches should be submitted to forge-devel.

#Formatting your commits

Work as you like locally, then use git rebase (man) to tidy-up your changes. Ensure each commit is meaningful before submitting patches.

Here is a helpful checklist to mentally run through. Each of your commits should be able to tick-off the following questions. Imagine each question uses the format, "Does the commit [...]?"

  • have a message following this format
  • only include changes relevant to this unit of work
    • make sense to be split into more granular commits
  • leave the software in a working state

Drew DeVault wrote a helpful guide/explanation mirroring the points made here.

#License

This project is licensed under GNU General Public License v3.0 only (more info).

#Third-party licenses