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.)

potzblitz's People

Contributors

guidoschmidt avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

rolinbert

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.