Giter Site home page Giter Site logo

guidoschmidt / potzblitz Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 1.0 4.09 MB

Generative UI library for generative projects

Home Page: https://potzblitz.guidoschmidt.cc

SCSS 26.54% TypeScript 72.25% JavaScript 1.08% HTML 0.14%
generative p5 p5-library p5js p5js-library threejs ui-lib ui-library user-interface

potzblitz's Introduction

โš ๏ธ Pre-Alpha Prototype

Potzblitz

Generative UI toolkit for generative projects


Rationale

The idea of potzblitz is to use a more declarative approach for defining control user interfaces (UI) for generative artworks and interactive systems. Instead of copy-pasting imperative code over and over again, the UI should be automatically built from the systems configuration.

Speaking in code, instead of doing this:

const ui = new UI();
const button = ui.addButton("redraw");
button.onChange(() => sketch.draw());
ui.add(button);

potzblitz aim to provide a more declarative way. Any system might already have some form of state or a bunch of variables which define a controlable parameter space and a set functions to tweak and change the system:

const settings = {
    seed: 12,
    backgroundColor: "#eebe82",
    particleCount: 2000,
    randomize: () => randomizeParameters(),
    download: () => downloadCanvas(),
}

new UI().build(settings);

Additionally I wanted to have a control library which would could easily be adapted in style and functionality, as well as being able to work with a bunch of different frameworks (React, Solid.js, small Javascript only projects etc.)


Ideas

This section outlines some thoughts and ideas for this project

  • Generalize components in a framework-independant structure? Generate source code for React, Solid.js and other frameworks from a generalize data structure? Web Components API
  • Separate a UI builder from its set of components. Have a Map<UiType, Component> which gets fed into the UI Builder to be able to customize and ad in project-specific components easily
  • SCSS Themeing
  • Plugin API to be able to add in middleware like functionality (e.g. websocket connector for controlling remote systems)
  • Track state for an undo/redo history
  • Use decorators for specifying UI parameters (range of sliders, which UI component to use, labels, etc.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.