cdrca
cdrca is a dsl project for abstracting the animation, it use as an npm package is for programatically write videos such as new bots etc however cdrca is meant for cartoons and other type of animations too atlhough limited by the license (as what ethics m
CDRCA is a transpiler and rendering engine designed to simplify the complex process of creating 2D, 3D, and especially 2.5D animations.
Creating compelling animations, whether through traditional frame-by-frame drawing or modern rigging, is challenging. 2.5D animation—which uses 2D assets in a 3D environment—presents its own difficulties, often limiting creators to simple camera pans and movements.
CDRCA aims to solve these problems by providing an intuitive Domain-Specific Language (DSL). It supports multiple programming paradigms (functional, object-oriented, and a props-scene-action model), allowing you to program, command, or simply write out your animation sequence.
You can get started with CDRCA in one of the following ways:
- Download the latest release from the project page.
- Clone the repository:
git clone https://github.com/Muhammad-Ayyan-no1/CDRCA-animation-dsl.git
- Install via npm:
npm install cdrca
To see the language in action, check out the examples here: CDRCA Examples.
Official documentation is currently in development and will be available soon.
CDRCA is built to boost productivity for both solo creators and teams. The DSL is designed to be so straightforward that it allows for a clear separation of roles:
- Technical Artists/Developers: Define props and the actions they can perform. This process is streamlined by the standard CDRCA library.
- Writers/Storytellers: Use the pre-defined props and actions to write the story. They can focus purely on the narrative, defining scenes and character behaviors in a highly reusable and dynamic way.
The syntax is designed to be intuitive. If you find it difficult, require tutorials, or have suggestions, please open an issue on GitHub. The goal is for CDRCA to feel like a natural extension of the creative process, not another complex tool to learn.
Actions are defined using the def action
keyword. You can chain multiple actions together in a single definition.
-
Syntax:
def action <action_name> <prop_name> <action_type> [additional_information]
-
Example:
def action runFast myCharacter run "fast"
CDRCA uses a header system for organization and imports.
-
@import myPath.cdrca
: Imports a library or tool. -
@addImport myPath.cdrca
: Inlines the content of another file, as if you had copy-pasted it.
You can also define scenes and add metadata using headers. A header block also implicitly defines a scene, or you can explicitly use the NextSceneStart
keyword.
-
Header Example:
! --- MyHeaderKeywords 1 2 3 :: This is a comment --- ! --- End ---
-
Regular Comments:
// Comments similar to JS (JAVASCRIPT) or CPP (C++) or C
For the rest of the syntax, please check the official documentation (once released) or explore the provided examples.
CDRCA is an open-source tool intended for everyone. We believe in using technology to foster positive and ethical creativity. The legal terms of use are outlined in the LICENSE.md
file. As a guiding principle, we ask that you use CDRCA responsibly and refrain from creating content with harmful or negative intentions.
CDRCA is an open project, and contributions are welcome! Feel free to fork the repository, make improvements, and submit a pull request.
-
CDRCA root
index.js
-
Front-end
index.html
- other stuff
-
Back-end
serverManager.js
- Transpiler
- Servers
- Renderer (server side)
- other stuff
-
examples
- basicUsage
- fullDemo
- other stuff
Currently, the project is being developed and maintained by a solo developer, Muhammad Ayyan.