Pixano Elements - Library of web components dedicated to data annotation tasks. A complete and ready-to-use annotation application is available at https://github.com/pixano/pixano-app
.
IMPORTANT: The Pixano Web Components are a work in progress and subject to major changes until 1.0 release.
Playcode demo (interactive-segmentation, cuboid, rectangle, smart-rectangle)
Automatic build tests on Ubuntu (latest) and node version 10, 12, 14.
Pixano requires WebGL to be activated in your browser. If you see the following error in you console WebGL unsupported in this browser
, please activate it.
For development, you will only need Node.js installed in your environement.
-
Just go on official Node.js website and download the installer. Also, be sure to have
git
available in your PATH,npm
might need it (You can find git here). -
You can install nodejs and npm easily with apt install, just run the following commands.
sudo apt install nodejs sudo apt install npm
Or install it with snap:
sudo snap install node
-
You can find more information about the installation on the official Node.js website and the official NPM website.
If the installation was successful, you should be able to run the following command.
node --version
# v8.11.3
npm --version
# 6.1.0
git clone https://github.com/pixano/pixano-elements.git
cd pixano-elements/demos/rectangle
npm i
npx serve
The Pixano Elements are divided into packages
. Each package can be installed independantly from NPM using the following command:
npm install @pixano/graphics-2d
Each package can contain multiple web components which are regrouped by affinity.
Component | Status | Demo |
---|---|---|
<pxn-rectangle> |
demo | |
<pxn-polygon> |
demo | |
<pxn-segmentation> |
demo | |
<pxn-graph> |
demo | |
<pxn-smart-rectangle> |
demo | |
<pxn-cuboid-editor> |
demo |
đź“š Check out the TypeDoc documentation. Each package's usage and API is also documented:
You can also try the demos on our website.
Clone and setup the repo:
git clone https://github.com/pixano/pixano-elements.git
cd pixano-elements
npm i
npm run bootstrap
npm run build
To run the demos locally, serve one of the demo folders:
npx serve demos/rectangle
To create a new component, check our tutorial.
Please follow our coding guidelines for your contributions.
Starting from scratch :
# 1. Start by cloning the original repository
git clone https://github.com/pixano/pixano-elements.git
# 2. Fork the repo (Fork button at https://github.com/pixano/pixano-elements) to your personal github
# Then configure the git remote for the fork ($MY_ACCOUNT is your personal github)
git remote add upstream https://github.com/$MY_ACCOUNT/pixano-elements.git
git fetch upstream
# 3. Create a new branch for dedicated bug fix or new feature
git checkout -b feature-xyz upstream/master
# 4. Do your changes in feature-xyz branch :)
git commit -a -m "Add xyz feature"
git push -u upstream feature-xyz
# Then make sure your branch is up to date with the original repository
git merge origin/master
# 5. Then in the browser navigate to the original URL of the original pixano-elements repo
# Click on “Create Pull Request”
From an existing clone with many changes (whether you want to publish all or only one of the changes) :
# 1. Instead of making a new clone, use your existing one and add two upsteams:
# One for your fork and one for the original repository:
git remote add upstream-fork https://github.com/$MY_ACCOUNT/pixano-elements.git
git remote add upstream-origin https://github.com/pixano/pixano-elements.git
# 2. Create a new branch for dedicated bug fix or new feature
git checkout -b feature-xyz upstream-fork/master
# 3. Cherry pick from commit from your enriched branch (replace by your targeted commit)
# Or merge all if you want to publish everything
git cherry-pick 52cd7ez # or git merge my_existing_branch
git push -u upstream-fork feature-xyz
# 4. Make sure you're up-to-date with you upstream-origin
git merge upstream-origin/master
# 5. Create pull request like described above
Pixano is released under the CeCILL-C license, a free software license adapted to both international and French legal matters that is fully compatible with the FSF's GNU/LGPL license.