Socket
Socket
Sign inDemoInstall

abeamer

Package Overview
Dependencies
0
Maintainers
1
Versions
35
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    abeamer

Animation for the cloud


Version published
Maintainers
1
Install size
926 kB
Created

Changelog

Source

[1.1.0] -

Changed

  • Access to story.virtualAnimator is deprecated.

    use addVirtualAnimator/removeVirtualAnimator instead.

  • (DEV) Port _ChartVirtualAnimator to SimpleVirtualAnimator.

    Using SimpleVirtualAnimator gives a cleaner implementation, and by also using animateProps reduces the render count when the animator has multiple animation properties.

Added

  • Add addVirtualAnimator/removeVirtualAnimator to the story.

    By using these methods instead of direct access to virtualAnimator, allows to create maps for quicker access to virtual animators.

  • Add SimpleVirtualAnimator class.

    To be used by plugin creators to simplify the process of animating their content.

  • Add support value parameters starting with -- in the abeamer cli.
  • Add --movie-pre and --movie-post parameters to abeamer cli.

    These arguments to be passed to ffmpeg before/after the arguments passed by abeamer.

  • Add --gif-pre and --gif-post parameters to abeamer cli.

    These arguments to be passed to convert before/after the arguments passed by abeamer.

  • (DEV) Add Launch abeamer cli to VSC debugger configuration.
  • (DEV) Add excludes to vsc files.watcher

    VSC complains about too many files on the project.
    This change is an attempt to solve this issue.

  • Add support of system env FFMPEG_BIN to locate ffmpeg executable.

    By having an environment variable pointing to the ffmpeg executable, ABeamer can generate a movie without requiring ffmpeg to be in the search path.

  • Add support of system env IM_CONVERT_BIN to locate imagemagick convert executable.

    By having an environment variable pointing to the imagemagick convert executable, ABeamer can generate a gif without requiring imagemagick convert to be in the search path.
    On windows the search path points to windows convert program which can conflict with imagemagick convert.

  • Add check command to the abeamer cli.

    Gives the user information how to configure puppeteer to use Chrome instead of Chromium.

  • (DEV) Add windows test batch files.

    It helps windows developers to test developer versions.

  • Add adapters.frameRendered.

    Using frameRendered allows animators with multiple animation properties to be called only once per frame. This is the case of charts and many other common canvas and WebGL virtual animators.

  • Add SimpleVirtualAnimator.animateProps.
  • Prepare core parts to be moved into plugins on version 2.x.

    By having many core parts as plugins, the ABeamer will load faster and the user can opt-out parts that aren't needed in a project.
    Since this will generate breaking changes, this phase will only be a preparation.

Fix

  • Fix http-server for URL with path with %20(spaces).
  • (DEV) Fix unix test scripts project paths containing spaces.
  • Fix render plugin injector to apply the same url base part.

    This allows the dev script teleport.sh to inject on non-release version, and in the release version to correctly inject in case the user changed from abeamer to another path.

  • (DEV) Fix unix test script teleport.sh project paths containing spaces.

Readme

Source

Description

TargetTarget

Image

ABeamer is a powerful frame-by-frame animation ecosystem, designed to create an animated story in the web browser and generate the file images of each frame in either a local machine or in the cloud.

Unlike VelocityJs and JQuery.animate which were built for real-time user interaction, ABeamer allows you to build complex frame based animations and save them frame-by-frame with transparency at high resolution and lossless compression without frame drop.

When an animated story is designed to be rendered in the cloud, no software is required to install on the local machine, allowing video hosting services, ad network, e-commerce companies many other businesses to provide a tool for their users to add text, images, and special effects to their images or videos by just using the web browser and then teleport the story to the company's machine to render the frame images and generate animated gifs or videos.

What's new

ABeamer 1.1.0:

  • Improves and simplifies the usage of Virtual Animators.
  • The CLI has:
    • a new check command to verify the requirements and help to configure puppeteer.
    • new parameters to fine-tune the generation of movies and gifs.
    • new environments variables to avoid changing the search path to execute ffmpeg and imagemagick convert.
  • Better support for paths with spaces.
  • Improved support for windows developers with new batch files. read more >>>

ABeamer was raised to production level with the release of ABeamer 1.0.0.
This is the first LTS version and it includes many improvements, bug fixes, a few cosmetics changes in the documentation, and better support on Windows platform and Microsoft web browsers.
ABeamer 1.0.0 gives great access to the command-line allowing to create stories that can be configure by the server, opening the door to multiple dimension rendering.
read more >>>
The animated-badges now are configurable by the server, and don't require the installation of local js/css files.
How to generate an animated badge with ABeamer >>>

ABeamer 0.3.2: Now ABeamer has a website and blog. Have a look: https://www.abeamer.com.
With the creation of the blog, the project updates will be described in more detail and its information can be used as documentation. In this version includes more detailed documentation and several fixed several documentation bugs. The major goal now is to raise the ABeamer to production level.
The roadmap was also updated and added many details.

Image

ABeamer 0.3.1 includes chart series as expressions, allowing to plot mathematical functions.
The standard library now also includes log, log10 and exp.
read more >>>

Image

ABeamer 0.3.0 includes the first implementation of the charts plugin.
Although there is still a lot of work for reach production stage, and the API can still change, is already usable in projects.
This plugin, will now enter a phase of research to ensure all parameters are consistent and their names and specifications are easy to use.
Have a look how the charts look in action or play with them in Code Pen.
read more >>>

This version also includes:

  • Gallery examples can viewed online without installing.
  • expressions support object variables.
  • expressions support one-dimension indices access to array variable.
  • Easings gallery.

For more details see the CHANGELOG.

Components

ABeamer includes a web browser library, a render server agent and a command line utility.
For the ABeamer Animation Editor, read Animation Editor.

  • ABeamer web browser library is a highly extensible TypeScript/JavaScript library bundled with a rich toolset reducing the time to build complex animations.
  • ABeamer render server agent is designed to communicate with a render server, usually a headless web browser, in order to save each frame to the disk. It can run either with the full potential supporting Code Handlers or in a sanitized environment allowing you to safely to render animations created by other users.
  • ABeamer command line utility allows you to build new projects, render frames, create animated gifs or movies.

Read the requirements for details about the necessary software to install if you need to render, create gifs or movies in the local machine.

Donate

Image

To build this project, and take it to the next level with the creation of the Animation Editor, it requires a full-time developer, please, consider donating to keep this project alive and help to tell your story or to grow your business:

Features

Image

  • Saves frame-by-frame into a file sequence with transparency and at high resolution.

Image

  • Optional support for SCSS, LESS and TypeScript.

Image

Image

  • Localization of messages and plugin functionalities, including functions and variables.

Property Animation

ABeamer has a complex system that allows to interpolate pixels, numbers, text, colors and much more. ABeamer guesses the starting value and property type from CSS style information, or if that information is given via valueStart.

  • General CSS properties:
    e.g prop: 'border-style'; valueText: ['dotted', 'dashed'].

Image

  • Pixel properties.
    e.g. valueStart: 10px; value: 100;
  • Dual-pixel properties via paths.

Image

  • Color properties.
    e.g. valueText: ['red', '#FF00AA'];

Image

  • Formatted numerical properties.
    e.g. valueFormat: '%d%'; value: 100;
  • Unformatted numerical properties.

Image

  • Image properties.
    e.g. prop: 'src'; valueText: ['a.png', 'b.png'];
  • Text properties.

Image

  • class property.
    e.g. prop: 'class'; valueText: ['+class1 -class2'];
  • visible property.
    e.g. prop: 'visible'; duration: 1; value: 1;
  • transform property:
    e.g. prop: 'transform'; valueFormat: 'rotateX(%fdeg)';

CSS Animations

ABeamer doesn't supports CSS animations, but ABeamer was designed in a way that its animations are similar to CSS animations, therefore it's easy to convert CSS Animations to ABeamer animations.
Besides the property interpolation described above, ABeamer also supports:

Image

  • Item-delay with disturbance to produce random effects.

Image

  • CSS animation-iteration-count.

Interpolators

ABeamer provides several interpolators, which can be defined by:

  • Teleportable Built-in interpolators. Accessible by name and ID.
  • Teleportable Expressions.
  • Plugins. Only official plugins can be teleportable.
  • Code Handlers due security reasons aren't teleportable.

ABeamer has following interpolators:

Image

  • Easings - The speed of motion.

Image

  • harmonic and damped oscillators - Rotation and Balancing motion.

Image

  • pulsar oscillator.

Image

  • Paths - n-dimension motion.

The interpolators are chained in the following order: easing→oscillator→path.

Toolset

ABeamer has a rich toolset. Extensibility and teleportation are the key features of these tools.
Unless is noticed, all the built-in tools support teleportation.
Just like in the case of interpolators, Code Handlers aren't teleported, and the tools can be extended via plugins but only official plugins are teleportable.

ABeamer has the following tools:

Image

  • Scene transitions.

Image

  • info flyover.

Image

  • video-sync flyover [1].

Image

  • Wrappers.

Image

  • Text tasks:
    • text-split task.
    • typewriter task.

Image

  • factory task.

Image

  • decipher task.

Image

  • color-attack task.

Image

  • shape task.

Image

  • speech shape task.

Image

  • charts task.

and much more coming soon.

Installation

To create animations, It's only required to have the web browser library without the need of any software installed in the computer.

If you have nodejs already installed, install using npm:

[sudo] npm install -g abeamer

Otherwise if you don't want to install nodejs, download from here, but it won't execute the command-line utility.

Requirements

However, in order to render frames, generate gifs and movies, it requires:

  1. nodejs.

  2. To render, it requires puppeteer render server npm install -g puppeteer.
    Puppeteer installs Chromium by default, since Chromium is outdated and it has less features than Chrome,
    before installing puppeteer, read the following note on how to configure puppeteer to use Chrome instead of Chromium. ABeamer also supports phantomjs but since its features are outdated it is preferable to use puppeteer.

  3. To generate gifs, it requires to have imagemagick on system path.
    For Windows users, read the following note.

  4. To create movies, it requires to have ffmpeg on the system path.

To check if 2-4 points are installed and configured, execute:
abeamer check

Playground

Try these examples online without any installation:

Get started

Start by creating a new project using the ABeamer command line utility:

abeamer create myproject

ABeamer web browser library root is ABeamer.Story.
When you create a story, you define an immutable number of frames per second,
and all animations are interpolated based on that fps.

on file js/main.ts:

  var story = ABeamer.createStory(25); // creates a story with 25 fps

The story holds a collection of Scenes.
Only one scene can be visible at a given moment in time except during the transition between two scenes.
It represents the natural concept of a scene in a storyline.
By using Scenes, ABeamer can speed up the processing speed by reducing the global amount of calculations.

The bare-bones of a html file:

  <div class="abeamer-story" id=story>
      <div class=abeamer-scene id=scene1>
           <p id="hello">Hello world</p>
      </div>
  </div>

The bare-bones of a abeamer.ini file:

$abeamer-width: 200;
$abeamer-height: 100;

The bare-bones of a scss file:

@import "./../abeamer.ini";
body,
html,
.abeamer-story,
.abeamer-scene {
  width: $abeamer-width + px;
  height: $abeamer-height + px;
}

Html Elements with abeamer-scene class are added automatically.
Scenes can be added manually with the following code:

 var newScene = story.AddScene();

Creating scenes with abeamer-scene class is the preferable way.
You add animations to the scene defining the time in 'seconds', 'milliseconds' or 'frames' but if it's defined in time, these are converted to frames based on the story fps.

  scene1.addAnimations(
    [{
      selector: '#hello',  // dom or JQuery selector
      duration: '4s', // at 25fps, the duration is 100 frames
      props: [
        {
          prop: 'left',  // property, text, url to animate
          easing: 'easeOutQuad', // easing
          value: 100 // end value
        }
      ]
    }]
  );

You can add multiple properties in parallel or off-sync with the position or advance parameter.

Command line

ABeamer command line utility is used to:

  1. checks if requirements are configured: abeamer check.
  2. create projects: abeamer create.
  3. launch a live server: abeamer serve.
  4. create a png file sequence: abeamer render.
  5. create gifs: abeamer gif.
  6. create movies: abeamer movie.

For detailed examples, read: Command Line Utility.
Read Requirements for details about the necessary software to install if you need to render, create gifs or movies on the local machine.

Documentation

GitHub Repositories

Roadmap & Known Issues

Contribute

Image ABeamer was built on Linux/Chrome/Puppeteer and tested on Windows, Firefox, Opera, MS IE11 and MS Edge.

To keep an healthy cooperation environment, before posting an issue, please read Code Of Conduct.

Report issues on github.

License

MIT License+uuid License

Copyrights

(c) 2018 Alexandre Bento Freire

Keywords

FAQs

Last updated on 31 Jul 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc