Skip to content
This repository has been archived by the owner on Apr 7, 2022. It is now read-only.

birdboat00/amelia

Repository files navigation

DEPRECATED - LOOK AT AJNOR

ajnor ajnor is a new framework created by me for JS. It has a more functional style API.

amelia

Amelia is an open-source creative-coding toolkit for modern JavaScript.

Amelia is a collection of APIs meant to make it easy to create sketches with simple and fast code. It puts an emphasis on the following aspects:

  • lightweight: at the moment ~50KB in size.
  • functional: it has a simple to use and understand functional style API.
  • fast: tries to be as fast as possible by being a thin wrapper around the Canvas API (with WebGL planned for the future).

Currently it support the following primitives:

  • Rectangle (rect)
  • Line (line)
  • Arc (arc)
  • Text (text)
  • Point (point)
  • Polygon (poly)

The library also supports mouse and keyboard handlers (WIP).

Amelia's API's are inspired by nannou and p5js.

Get started

I have prepared a getting started guide.

Requirements and Download

amelia requires a browser that supports ES6 modules.

To use it, download the module folder and drop it into your project. Then you can import the stuff you need from the mod.mjs module like this for example:

import { app, Color } from "path/to/module/mod.mjs";

Example

Here is a quick example on how to use amelia.

import { app, Color } from "./module/mod.mjs";

const view = (app) => {
    let pen = app.pen();

    pen
        .background()
        .color(Color.Black);

    pen
        .rect()
        .xy(50, 50)
        .wh(100, 50)
        .color(Color.Yellow);

    pen.plot();
};

app()
    .size(400, 400)
    .view(view)
    .run();

Goals and Non-Goals

Goals:

  • ✅ be simple and lightweight
  • ✅ thin wrapper around the canvas API
  • ✅ be fast

Non-Goals:

  • ❌ replace p5.js or Processing
  • ❌ 3D graphics
  • ❌ being the fastest

Disclaimer

It just started working on this library and there is still a lot of work to be done. Feel free to help out!

Benchmarks

TBD

License

amelia is licensed under the MIT license.

Building the reference to json

buildref.bat
or
npx jsdoc -c jsdoc.config.json -X -r > ref.json