Skip to content

ondras/primitive.js

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
css
November 29, 2016 21:47
js
June 28, 2018 09:46
November 23, 2016 11:43
December 3, 2017 09:27
April 26, 2020 11:05
November 25, 2016 16:19
November 23, 2016 11:39
November 23, 2016 11:39

primitive.js

A JavaScript re-creation of the primitive.lol application.

How does it look?

Check out the Masterpieces gallery for several cool samples. There is also a dedicated Electron-based port that works as a regular desktop application.

Try it now!

At a dedicated demo page

Building

Written in client-side JavaScript, uses Rollup for JS bundling and LESS for CSS pre-processing.

  1. git clone git@github.com:ondras/primitive.js.git && cd primitive.js
  2. npm install
  3. npm start

About the algorithm

Most of the ideas are shared with the original app, described at https://github.com/fogleman/primitive/. Rasterization is done via HTML5 , which is very flexible but prohibits reasonable parallelization. Web Worker support is available but not used at all, as it does not currently bring any performance improvement. This might change in the future.

License

MIT

Contributing

There are no major missing features nor a roadmap. The UI needs some polishing w.r.t. UX. If you think your feature/bugfix/contribution might be worthwhile, please ask before diving into the code. Performance improvements (measurable) are welcome.