• Stars
    star
    2,328
  • Rank 19,777 (Top 0.4 %)
  • Language
    HTML
  • License
    Other
  • Created almost 9 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The development repo for the Primer on Bézier curves, https://pomax.github.io/bezierinfo

BezierInfo-2: a dev repository

This is the development repository for "A Primer on Bézier Curves", itself hosted as https://pomax.github.io/BezierInfo-2/

This is the new codebased for the primer, being a pure HTML/CSS/Vanilla-JS tech stack - the old version can be found on the 2016-react branch

Work is still underway on this new version, see #257 for the current task list.

Building everything

Use the active Node LTS (currently v16) or higher, with all the project dependencies installed via npm install. Note that node-canvas will need you to install some Cairo libs/headers using your OS's package manager, with special instructions for Windows users because Windows doesn't come with the same kind of package management that Unixy systems do. To successfully compile, GTK is required, but JPEG support is not (this repo's code only generates PNG images).

Also note that you will need a TeX installation with several dependencies: on Windows, install MiKTeX and set it up so that it automatically installs things as needed. On Linux/Unix/etc, you'll need to install the following packages :

  • xzdec
  • libpoppler-glib-dev

And for the LaTeX work you will need:

  • texlive
  • texlive-xetex
  • texlive-extra-utils
  • fonts-unfonts-core
  • pdf2svg

To make life easier, if your distro uses apt-get, just run this:

> sudo apt-get update && sudo apt-get install xzdec libpoppler-glib-dev texlive texlive-xetex texlive-extra-utils pdf2svg

If you're using a different package installation method, note that for LaTeX you will need xetex, pdfcrop, and the following fonts (installed using a TeX distribution manager):

  • Linux Libertine
  • XITS Math
  • TeX Gyre
  • TeX Gyre Math
  • Arphic-ttf
  • IPAex (not type1)
  • UnBatang

Note: pdf2svg, can be installed just like everything else on Linux, but on Windows requires you to build the tool yourself, after which you will have to put the pdf2svg.exe file somewhere sensible (like C:\Program Files (x86)\pdf2svg) add then manually add its directory to your PATH environment variable, so that windows knows where to look when the pdf2svg command gets issued.

With all the dependencies in place, you can now continuous-test everything using:

> npm test

Which will start the build run in "watch" mode, opening a browser with the compiled project, and recompiling as you update and save files.

To run a single, full build, rather than continuous building, use:

> npm start

Note that for dev work, you typically want to run npm test for as long as you're working on that code. Once you're ready to form a commit for PR purposes, run npm start to do a "real" build rather than a dev build, and then form your commit, so that you're pushing "final" code rather than intermediate dev code.

Specialised commands:

  • npm run regenerate runs a build followed by running prettier on the final .html files, as well as link-checker to make sure there are no dead links in the content.
  • npm run deploy runs regenerate and then copies the content of the docs directory over to ../bezierinfo, which is where the actual webview repo lives on my filesystem.

Even more specialized commands:

Please see the package.json "scripts" section for the full list of commands. Most of these are just build chain steps, and running them on their own basically makes no sense.

Weird personal dependencies?

There are a number of dependencies that are pulled from my own forks of projects, because my versions include patches (either by myself or others) that fix problems or shortcomings that have not been merged into upstream (yet?), or have been merged in but have not had a new release (yet?).

More Repositories

1

react-onclickoutside

An onClickOutside wrapper for React components
JavaScript
1,818
star
2

bezierjs

A nodejs and client-side library for (cubic) Bezier curve work
JavaScript
1,650
star
3

bezierinfo

A Primer on Bezier Curves
HTML
733
star
4

lib-font

This library adds a new Font() object to the JavaScript toolbox, similar to new Image() for images
JavaScript
725
star
5

nrGrammar

The Nihongo Resources grammar book: "An Introduction to Japanese; Syntax, Grammar & Language"
TeX
327
star
6

node-flickrapi

A node.js (and client-library) implementation of the Flickr API with oauth API key authentication and API method proxying
JavaScript
177
star
7

Pjs-2D-Game-Engine

Processing.js 2D Game Engine
JavaScript
83
star
8

mahjong

Proper mahjong. In Javascript. Because I love this "game".
JavaScript
75
star
9

js-svg-path

A parser that turns SVG path strings into a JS object you can mess with.
JavaScript
62
star
10

music-theory-js

For when you need to do music theory things. In javascript. Don't look at me you know what you need this for.
JavaScript
60
star
11

fontmetrics.js

A JavaScript library that extends the Canvas2D context.measureText(<String>) with additional typographical metrics
JavaScript
56
star
12

svg-path-reverse

This is a JavaScript SVG path to "something" converter, turning a path into hookable graphics instructions for arbitrary conversion
JavaScript
56
star
13

CFF-glyphlet-fonts

Making tiny fonts, because making tiny fonts.
JavaScript
50
star
14

react-component-visibility

For when your components need to know whether users can see them or not
JavaScript
47
star
15

PHP-Font-Parser

This is a PHP code library for parsing TTF/OTF fonts from file.
PHP
45
star
16

A-binary-parser-generator

This project aims to create a tool that can turn a spec file into a parser skeleton for binary data files such as OpenType fonts, PNG images, etc.
JavaScript
38
star
17

nihongoresources.com

A repository of nihongoresources.com related materials.
CSS
37
star
18

Usered

A minimal PHP user authentication system
PHP
36
star
19

midi-with-node

Turn your browser into a MIDI device through the magic of Nodejs, easymidi, and socket.io
JavaScript
31
star
20

photoshop-paths-to-SVG

This is a photoshop "jsx" script that turns all paths in the active document into a single SVG file for use in something else.
JavaScript
30
star
21

node-jp-conjugations

A Japanese verb conjugator and unconjugator
JavaScript
30
star
22

arduino-midi-recorder

Let's build an Arduino-based MIDI recorder!
C++
26
star
23

react-positionable-component

A <Positionable> React component to turn arbitrary content into easy to CSS transform content
JavaScript
22
star
24

socketless

A framework and methodology for writing web socket RPC programs, without writing a single line of web socket or RPC code.
JavaScript
20
star
25

flickrmirror

Mirror your Flickr account to your HD. Then write a new site based on it.
JavaScript
17
star
26

the-cff-table

A markdown conversion of the Adobe Tech notes 5176 and 5177 as a stub for "what the OpenType chapter on the CFF table should look like", for specifically-for-OpenType-only CFF blocks.
17
star
27

RGBAnalyse

An RGB-HC histogram library for same-origin images
JavaScript
16
star
28

EasyPageComments

A simple instant-comments-section for pages based on PHP at the server, and _optionally_ JavaScript at the front end
PHP
16
star
29

LUT-builder

A web based LUT builder for OBS 64x64x64 LUTs
JavaScript
15
star
30

custom-graphics-element

Because what if you could just... write graphics sketches? On the web? Like, directly?
JavaScript
15
star
31

lightroom-catalog-helper

A lightroom catalogue helper utility
JavaScript
15
star
32

node-jp-conversion

Japenese input conversion, turning any string into {kanji, katakana, hiragana, romaji} where possible.
JavaScript
15
star
33

pomax.github.io

My blog, hosted via github
Mathematica
14
star
34

react-formbuilder

A relatively easy to use form builder (single or multipage), with error reporting and lots of room for customization
JavaScript
14
star
35

ucharclasses

A XeLaTeX package that lets you insert arbitrary code between characters from different unicode blocks
TeX
14
star
36

WebGLdraw

LDraw .dat to .obj converter for rendering LEGO using WebGL
JavaScript
13
star
37

Minimal-font-generator

This bit of JavaScript generates fonts that implement a single character, as a zero-width glyph.
JavaScript
13
star
38

msfs-simconnect-api-wrapper

A JavaScripty wrapper around node-simconnect
JavaScript
13
star
39

css-node-graph

A React based, pure CSS graphing thing (note: just graphs. Not charts or plots)
JavaScript
11
star
40

pocketknife

A small JS tookit -- like jQuery, but smaller, not backward compatible, and without the powerhouse functions.
JavaScript
10
star
41

terminal-menu-program

Terminal menu programs, using retro ansi terminal menus for serious 80s technicolor business
JavaScript
10
star
42

filebrowser_s3

an AWS S3 fix for Mezzanine's media manager
Python
9
star
43

tex2utf

A UTF8 massaging of the `tex2mail` utility, found on https://ctan.org/pkg/tex2mail
Perl
9
star
44

CSSmacros

Start writing CSS with macros ("constants" or "set-once variables"), because sometimes classes and/or just elements doesn't cut it
JavaScript
8
star
45

KeyTrap.js

Trap keyboard events in HTML elements to prevent default browser actions (backspace, cursor, etc)
JavaScript
7
star
46

cff-opcode-fonts

OTF fonts for testing CFF opcode support
7
star
47

are-we-flying

Writing auto-pilots in JavaScript for MSFS
JavaScript
7
star
48

webpack-block-loader

A webpack loader for doing generic block-processing. You provide the delimiters and processor, block-loader will find your data and pass it through your processor.
JavaScript
7
star
49

mini-daw

A web based mini-DAW implementation (using the Web Audio and Web MIDI APIs)
JavaScript
7
star
50

Mike-s-Mahjong

A Java implementation of Mahjong (the real game, not the solitaire nonsense)
Java
6
star
51

arctic-redpoll

A JavaScript Tree library
JavaScript
6
star
52

three-point-perspective

Implementing strict three point perspective is ridiculous. You'll never need it. Let's do it anyway.
6
star
53

quick-glyph-maker

A quick glyph maker that I need for writing a blog post on fonts
JavaScript
5
star
54

pagemixer

Like an in-browser dev tools for normal people to play with
JavaScript
5
star
55

FlickrFindr

a javascript flickr search module
JavaScript
5
star
56

Inkcyclopedia

A simple inkcyclopedia based on (at least) 228 ink sample tests
JavaScript
5
star
57

inkdb.org

React overhaul of inkcyclopedia.org
JavaScript
5
star
58

use-models-for-data

Work with your data through well-defined, always-consistent models, instead of rando plain JS objects
JavaScript
4
star
59

processing-bezier-master

Master repo for a generic Processing sketch for Bezier curve work.
Processing
4
star
60

inkdb-data

Open Source Fountain Pen Ink Data
JavaScript
4
star
61

ReactRoutedExample

An example app using React and React Router 2, with webpack bundling, watching, and server-side page generation.
JavaScript
4
star
62

node-type2-charstring

A simple converter for Type2 charstrings in human readable and byte form
JavaScript
4
star
63

console-plot

Add plotting to the browser console, because data viz is life.
JavaScript
3
star
64

mjscoring.js

html5 mahjong scoring app (work in progress)
JavaScript
3
star
65

gh-weblog

A simple weblog that runs entirely off of gh-pages
CSS
3
star
66

simple-cff-builder

A simple CFF builder with global subroutines and human readable charstring input for generating test fonts.
JavaScript
3
star
67

walking-bass

A walking bass generator.
JavaScript
3
star
68

react-circletree

A circle tree component for React applications
JavaScript
3
star
69

reddit-image-catch-up

Catch up on all your favourite image subreddits with one call.
JavaScript
3
star
70

node-jp-giongo

A Japanese onomatopoeia and mimesis module for node.js
JavaScript
3
star
71

node-kanji-relations

A node.js module for getting parent/child grapheme relations for Japanese kanji
JavaScript
3
star
72

mathparser

A math parser for Processing - give it a string, it gives back an evaluator
JavaScript
2
star
73

processing-stubs

Code that I constantly end up writing when using Processing
Processing
2
star
74

socketless-demo

Demos for the socketless library, https://github.com/Pomax/socketless
JavaScript
2
star
75

nrAPI

nihongoresources REST API
JavaScript
2
star
76

canonical-cubic-curve

Canonical cubic curve analysis based on the 1989 paper "A Geometric Characterization of Parametric Cubic Curves"
Processing
2
star
77

php-MJ-Scoring

MJ scoring JS/PHP script/page thingy
PHP
1
star
78

mox-server

A tiny express server that will host mox (emulated S3) data as text/html content
JavaScript
1
star
79

JSON-object-traverse

JS "mix in" to add string based route traversal to a JS object
JavaScript
1
star
80

node-rtltr-for-less

An automatic rtl/ltr extension for less-middleware
JavaScript
1
star
81

Cursive-swash-typeface

I'm desiging a cursive, swashed typeface, and will try to implement it as OTF. We'll see how that goes
1
star
82

Bookstyle

Making text files look pretty and paginated for your reading pleasure. In HTML
1
star
83

NRAPI-React

A React UI implementation for api.nihongoresources.com
JavaScript
1
star
84

Sheet-slicer

A sheet slicer using react and tiny REST API server
JavaScript
1
star
85

Twitter-Personal-Feed-Curator

For bulk deleting about a thousand tweets at a time.
JavaScript
1
star
86

noodle-doodle

What I'd like to see in a piano roll/sequencer when it comes to keyboard usability
JavaScript
1
star
87

Online-stack-validator

This project offers an online stack validator for programming code, analysing matched pairs
JavaScript
1
star