npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ixfx

v0.32.0

Published

A framework for programming interactivity

Downloads

5,287

Readme

ixfx

ixfx is a framework for sketching and prototyping interactivity. It is designed for the beginning programmer, and is optimised for readability and safety over performance.

Using

Please see the guide for how to get up and running.

Why ixfx?

There are many 'front-end' frameworks, but these are typically meant for regular GUIs or document-based apps. They usually have idiosyncratic ways of structuring code, custom syntax, and elaborate build processes. Great though if you're doing that kind of thing often.

There are also several 'creative coding' sandboxes. These are better suited than front-end frameworks for experimentation in interactivity, but again tend to be their own little ecosystem removed from the web platform. They favour Canvas-based visuals, and seem largely ignorant of the wider web platform or modern coding practices.

In both cases one spends a lot of time learning the particular framework and its way of doing things rather than the web platform itself. Learning Javascript as a language also gets lost in this. Having to ask "how do I do x in React?" or "how do I do x in P5.js?" is a sign the framework has eaten you.

Some principles are:

  • No build process required
  • No sandbox lock-in: follow web platform conventions so that patterns learned can be applied elsewhere
  • Good type definitions and documentation for improved editor experience (in VS Code at least)
  • Plain, immutable data over rich objects
  • Favour functional approaches over OOP

Features

ixfx offers:

  • Flow: state machine, time-based delay/intervals, debounce, throttling
  • Modulation: ADSR envelope, oscillators, easing functions
  • Data: generators, frequency-tracking, stack and queue collections, colour functions
  • Geometry: primitives for Cartesian & polar coordinates, points, lines, arcs, circles and grid layouts.

Building

If you want to contribute to ixfx or build it yourself, please see BUILDING.md.

Credits

Bundles