Designers, developers and researchers around the world use computational design languages and tools (development frameworks) to create 2D and 3D images and animations for projects. Processing.js and Toxiclibs.js are two examples of JavaScript libraries used for designing in the Canvas element of HTML5. They are both open source libraries, free to use and freely accessible.
One of the first questions that arise when someone has not yet used these two libraries is, what is the Canvas element of HTML5? Canvas is one of the latest components of the new HTML5 standard for developing dynamic images in digital projects. HTML5’s Canvas element enables users to delimit a space on a web page that can be used as a canvas to draw and render images with scripts. What used to be done in Flash is replaced with JavaScript libraries.
– Processing.js
Processing. js is a JavaScript library that enables designers and developers to create high-quality data visualizations, digital art, interactive animations or video games in the Canvas element of HTML5. The problem is that these small canvases on which to paint with JS have some major limitations: libraries such as Processing.js are needed to be able to provide greater complexity to the graphic art. The main limitations are movement and interactivity.
Processing was conceived as an open source programming language based on Java for enhancing the possibilities of digital design, and was developed by Ben Fry and Casey Reas. It can even be considered a simplified Java syntax with its own API in Java. The functionality in Processing.js and be adapted to its execution within a browser compatible with HTML5 (Explorer, Firefox, Google Chrome, Safari and Opera).
Steps for a JavaScript developer to start using Processing.js:
– Create a web page that includes the Processing.js library. In this step the user needs to configure a canvas element to paint the dynamic images. Example of HTML code for installing Processing and designing the canvas:
<!DOCTYPE html>
<html>
<head>
<title>Hello Web – Processing.js Test</title>
<script src=”processing-1.3.6.min.js”></script>
</head>
<body>
<h1>Processing.js Test</h1>
<p>This is my first Processing.js web-based sketch:</p>
The following lines of code, which must be included within the <body>, define the function that enables the developer to create the small sketch in Canvas and paint in JavaScript the visualizations that are run on the browser and contain an object where the library’s commands can be displayed. Within this function we can define variables such as setup (to start the canvas and the different variables) and draw (which runs all the movement and interactivity features on the browser).
function sketchProc(processing) {
// Override draw function, by default it will be called 60 times per second
var minutesPosition = (now.getMinutes() + now.getSeconds() / 60) / 60;
drawArm(minutesPosition, 0.80, 3);
// Moving hour arm by second increments
var secondsPosition = now.getSeconds() / 60;
drawArm(secondsPosition, 0.90, 1);
Another interesting feature of Processing.js is that it transforms the Processing code in JavaScript. This enables a developer who is aware of the first syntax, but not the second, to run dynamic images directly on the browser without having any knowledge of JavaScript and using only the integrated development environment of Processing. Thus, animations can be designed on the client side using this language only.
– It has no data directory: while Processing does have a data directory where the images and the design elements for front-end design are kept, Processing.js has no such directory. This means that the developer has to provide file pages, for example, the images, that belong to a web page.
– Processing.js implements Processing, but not Java in its entirety: Processing.js is fully compatible with the Processing syntax, but the same is not true for Java. If an animation works with functions or classes external to Processing, it is difficult for them to be compatible with this JavaScript library. Moreover, libraries written in Java for Processing will very likely not work with Processing.js.
– Processing.js only has two rendering modes: the use of the HTML5 Canvas element by Processing.js provides a context based on WebGL, an OpenGL version for web pages.
– Like JavaScript, Processing.js uses no char data.
– In Processing.js, the developer needs to pay attention to the name of the variables. They can cause problems in the functions that have a similar name. This should be avoided.
– Using color in Processing.js is a complex process: it is advisable to use hexadecimal (#RRGGBB), RGB (r, g, b) or RGBA (r, g, b, a) colors.
– Toxiclibs.js
Toxiclibs.js is an open source library for designing in JavaScript. It was originally a library written for Java and Processing by Karsten Schmidt and was later adapted to JavaScript by Kyle Phillips. After several years of development, the library consists of more than 270 classes, 18 packages grouped into seven libraries, and more than 25,000 lines of code.
Toxiclibs.js classes are generic. This enables the code to be reused to create images for applications such as data visualization, animation, user interface design, etc. This flexibility for developers is possible because this library has no dependencies with respect to other libraries or tools, not even Processing.
Toxiclibs.js can be used in three different ways:
– Installing the library itself on the web page.
<script type=”text/javascript” src=”js/toxiclibs.min.js”></script>
<script type=”text/javascript”>
var myVector = new toxi.geom.Vec2D( 2, 3 ).scaleSelf(0.5);
var myColor = toxi.color.TColor.newRGB(128/255,64/255,32/255);
</script>
– Through RequireJS.
require([
‘toxi/geom/Vec2D’,
‘toxi/color/TColor’
],function( Vec2D, TColor ){
var myVector = new Vec2D( 2, 3 ).scaleSelf(0.5);
var myColor = TColor.newRGB(128/255,64/255,32/255);
});
– Using Node.js.
npm install toxiclibsjs
var toxi = require(‘toxiclibsjs’),
myVector = new toxi.geom.Vec2D(0.5,0.5),
myColor = toxi.color.TColor.newRGB(128/255,64/255,32/255);
– toxi.audio. Spatial 3D audio based on the JOAL (Java OpenAL) sound library, which enables efficient rendering of positional and multichannel 3D audio. It is extensively used in video games.
– toxi.color. This package includes RGB, HSV and CMYK color models.
– toxi.geom. This enables objects to be exported in OBJ and STL format, for example.
– toxi.math. Interpolation methods for image processing.
In the dynamic world of payments, a new star has emerged in recent years: Buy Now Pay Later (BNPL), i.e. short-term financing that allows you to buy now and pay later. This model allows businesses to purchase goods or services and pay for them in installments, often interest-free, making it an attractive alternative to credit […]
BBVA and Vecttor, Cabify’s subsidiary engaged in managing vehicles with drivers, have entered into an alliance that saves time and provides security to the company and its drivers. The collaboration allows drivers to deposit cash collections at any BBVA ATM and Vecttor to automatically reconcile this activity from their accounts with those in the company’s […]
BBVA has been recognized by Global Finance as the bank with the best global open banking offer for companies. This award comes on top of 12 other recognitions the magazine has bestowed on the company, such as the best bank for corporate clients and the one recognizing its AI factory as one of the best […]
Please, if you can't find it, check your spam folder
×
The email message with your ebook is on the way
We have sent you two messages. One with the requested ebook and one to confirm your email address and start receiving the newsletter and/or other commercial communications from BBVA API_Market
×
PROCESSING OF PERSONAL DATA
Who is the Data Controller of your personal data?
Banco Bilbao Vizcaya Argentaria, S.A. (“BBVA“) with registered address at Plaza de San Nicolás 4, 48005, Bilbao, España and Tax ID number A-48265169 . Email address: contact.bbvaapimarket@bbva.com
What for and why does BBVA use your personal data for?
For those activities among the following for which you give your consent by checking the corresponding box:
to receive newsletter from BBVA API_Market through electronic means;
to send you commercial communications, events and surveys relating to BBVA API_Market to the e-mail address you have provided.
For how long we will keep your data?
We will keep your data until you unsubscribe from receiving our newsletter or, if applicable, the commercial communications, events and surveys to which you have subscribed. Whether you unsubscribe or whether BBVA decides to end the service, your details will be deleted.
How can I unsubscribe to stop receiving newsletters and/or communications from BBVA API_Market?
You can unsubscribe at any time and without need to indicate any justification, by sending an email to the following address: contact.bbvaapimarket@bbva.com
To whom will we communicate your data?
We will not transfer your personal data to third parties, unless it is mandatory by a law or if you have previously agreed to do so.
What are your rights when you provide us with your information?
You will be able to consult your personal data included in BBVA files (access right)
You can modify your personal data when they are inaccurate (correction right)
You may request that your personal data not be processed (opposition right)
You may request your personal data be deleted (suppression right)
You can request a limitation on the processing of your data in the allowed cases (right of limitation of processing)
You will be able to receive, in electronic format, the personal data you have provided to us, as well as to transmit them to another entity (portability right)
You are responsible for the accuracy of the personal data you provide to BBVA and to keep them duly updated. If you believe that we have not processed your personal data in accordance with regulations, you can contact the Data Protection Officer of BBVA at the following address dpogrupobbva@bbva.com.
You can find more information in the “Personal Data Protection Policy” document on this website.
×
PROCESSING OF PERSONAL DATA
Who is the Data Controller of your personal data? Banco Bilbao Vizcaya Argentaria, S.A (“BBVA“), with registered address at Plaza de San Nicolás 4, 48005, Bilbao, España, and Tax ID No. A-48265169. Email address:contact.bbvaapimarket@bbva.com
What for and why does BBVA use your personal data for?
For the execution and management of your request, specifically, download the requested e-book/s.
BBVA informs you that, unless you indicate your opposition by sending an email to the following address: contact.bbvaapimarket@bbva.com, BBVA may send you commercial communications, surveys and events related to products and/or services of BBVA API Market through electronic means.
For how long we will keep your data?
We will keep your data as long as necessary for the management of your request, and to receive commercial communications, events and surveys. BBVA will keep your data until you unsubscribe to stop receiving our newsletters or, where appropriate, until the end of the service. Afterwards, we will destroy your data.
How can I unsubscribe to stop receiving newsletters and/or communications from BBVA API Market?
You can unsubscribe at any time and without need to indicate any justification, by sending an email to the following address: contact.bbvaapimarket@bbva.com
To whom will we communicate your data?
We will not transfer your personal data to third parties, unless it is mandatory by a law or if you have previously agreed to do so.
What are your rights when you provide us with your information?
You will be able to consult your personal data included in BBVA files (access right)
You can modify your personal data when they are inaccurate (correction right)
You may request that your personal data not be processed (opposition right)
You may request your personal data be deleted (suppression right)
You can request a limitation on the processing of your data in the allowed cases (right of limitation of processing)
You will be able to receive, in electronic format, the personal data you have provided to us, as well as to transmit them to another entity (portability right)
You can exercise before BBVA the aforementioned rights through the following address: contact.bbvaapimarket@bbva.com
You are responsible for the accuracy of the personal data you provide to BBVA and to keep them duly updated.
If you believe that we have not processed your personal data in accordance with the regulations, you can contact the Data Protection Officer at the following address: dpogrupobbva@bbva.com
You can find more information in the “Personal Data Protection Policy” document on this website.
Banco Bilbao Vizcaya Argentaria, S.A. owner of this portal uses cookies and/or similar technologies of its own and third parties for the purposes of personalization, analytics, behavioral advertising or advertising related to your preferences based on a profile prepared from your browsing habits (e.g. pages visited). If you wish to obtain more detailed information, consult our Cookies Policy.
Cookie settings panel
These are the advanced settings for first-party and third-party cookies. Here you can change the parameters that will affect your browsing experience on this website.
Technical Cookies (required)
These cookies are used to give you secure access to areas with personal information and to identify you when you log in.
Name
Owner
Duration
Description
gobp.lang
BBVA
1 month
Language preference
aceptarCookies
BBVA
1 year
Configuration Accepted Cookies
_abck
BBVA
1 year
Helps protect against malicious website attacks
bm_sz
BBVA
4 hours
Helps protect against malicious website attacks
ADRUM_BTs
Salesforce Marketing Cloud
Session
Required for monitoring of the service, inherent to SFMC
ADRUM_BT1
Salesforce Marketing Cloud
Session
Required for monitoring of the service, inherent to SFMC
ADRUM_BTa
Salesforce Marketing Cloud
Session
Required for monitoring of the service, inherent to SFMC
ADRUM_BT
Salesforce Marketing Cloud
Session
Required for monitoring of the service, inherent to SFMC
xt_0d95e
Salesforce Marketing Cloud
Session
Remember user preferences (if any)
__s9744cdb192d044faa1bf201d29fafd1e
Salesforce Marketing Cloud
Session
Remember user preferences (if any)
wpml_browser_redirect_test
WPML
Session
Text translation in the portal
wp-wpml_current_language
WPML
24 hours
Text translation in the portal
They are used to track the activity or number of visits anonymously. Thanks to them we can constantly improve your browsing experience
Your browsing experience is constantly improving.
With your selection, we cannot offer you a continuously improved browsing experience.
Name
Owner
Duration
Description
AMCV_***
Adobe Analytics
Session
Unique Visitor IDs used in Cloud Marketing solutions
AMCVS_***
Adobe Analytics
2 years
Unique Visitor IDs used in Cloud Marketing solutions
demdex (safari)
Adobe Analytics
180 days
Create and store unique and persistent identifiers
sessionID
Adobe Analytics
Session
Launch's internal cookie used to identify the user
gpv_URL
Adobe Analytics
Session
Adobe Analytics plugin: getPreviousValue Capture the value of a certain variable in the following page view, in this case the prop1
gpv_level1
Adobe Analytics
Session
Cookie used to store the DataLayer levl1 of the previous page.
gpv_pageIntent
Adobe Analytics
Session
Cookie used to store the pageIntent of the previous page.
gpv_pageName
Adobe Analytics
Session
Cookie used to store the pagename of the previous page.
aocs
Adobe Analytics
Session
Cookie that stores the first values collected at the beginning of a process.
TTC
Adobe Analytics
Session
Cookie used to store the time between the App Page Visit event and the App Completed event.
TTCL
Adobe Analytics
Session
Cookie used to store the time between the LogIn event and App Completed.
s_cc
Adobe Analytics
Session
Determine if cookies are active
s_hc
Adobe Analytics
Session
Cookie used by Adobe for analytical purposes
s_ht
Adobe Analytics
Session
Cookie used by Adobe for analytical purposes
s_nr
Adobe Analytics
2 years
Determine the number of user visits
s_ppv
Adobe Analytics
Permanent
Adobe Analytics plugin: getPercentPageViewed Determine what percentage of the page a user views
s_sq
Adobe Analytics
Session
ClickMap/ActivityMap features
s_tp
Adobe Analytics
Session
Cookie used by Adobe for analytical purposes
s_visit
Adobe Analytics
2 years
Cookie used by Adobe to know when a session has been started.
They allow the advertising shown to you to be customized and relevant to you. Thanks to these cookies, you will not see ads that you are not interested in.
The advertising is customized to you and your preferences.
Your choice means you will not see customized ads, only generic ones.
Name
Owner
Duration
Description
OT2
VersaTag
90 days
VersaTag Cookie used to store a user id and the number of user visits.
u2
VersaTag
90 days
VersaTag Cookie where the user ID is stored
TargetingInfo 2
MediaMind
1 year
Cookie that serves to assign a unique random number that generates MediaMind.
These cookies are related to general features such as the browser you use.
Your experience and content have been customized.
With your selection, we cannot offer you a continuously improved browsing experience.
Name
Owner
Duration
Description
mbox
Adobe Target
9 days
Cookie used by Adobe Target to test user experience customization.
×
Looks like you’re browsing from Mexico, so let’s show you the custom content for your
location. Change
Looks like you’re browsing from Spain, so let’s show you the custom content for your
location. Change
Select a country
In order to access the private area and corresponding sandbox, select the country of the APIs you want to use.