All Projects → baku89 → Glisp

baku89 / Glisp

Licence: mit
A Lisp-based Design Tool Bridging Graphic Design and Computational Arts

Programming Languages

typescript
32286 projects
lisp
113 projects

Projects that are alternatives of or similar to Glisp

Pts
A library for visualization and creative-coding
Stars: ✭ 4,628 (+791.71%)
Mutual labels:  graphics, generative-art, creative-coding, design
Awesome Creative Coding
Creative Coding: Generative Art, Data visualization, Interaction Design, Resources.
Stars: ✭ 8,696 (+1575.53%)
Mutual labels:  generative-art, creative-coding, design
Generative Designs
A collection of generative design React components
Stars: ✭ 51 (-90.17%)
Mutual labels:  graphics, generative-art, design
GenerativeArtists
No description or website provided.
Stars: ✭ 22 (-95.76%)
Mutual labels:  creative-coding, generative-art
generative-art
🌈🎨 Generative Art is the idea realized as genetic code of artificial events, as construction of dynamic complex systems able to generate endless variations. This is also a nuxt-module (@luxdamore/nuxt-canvas-sketch) - [three.js, tensorflow.js and gsap are not included].
Stars: ✭ 41 (-92.1%)
Mutual labels:  creative-coding, generative-art
2d-diffusion-limited-aggregation-experiments
Visual experiments exploring diffusion-limited aggregation (DLA) as a 2D morphogenesis tool.
Stars: ✭ 41 (-92.1%)
Mutual labels:  creative-coding, generative-art
BeatDrop
BeatDrop Music Visualizer
Stars: ✭ 54 (-89.6%)
Mutual labels:  creative-coding, generative-art
manyworlds
A scifi-inspired study of signed distanced functions and noise fields in WebGL
Stars: ✭ 24 (-95.38%)
Mutual labels:  creative-coding, generative-art
microbium-app
Draw new worlds
Stars: ✭ 89 (-82.85%)
Mutual labels:  creative-coding, generative-art
dots
Dots & Boxes Visualization
Stars: ✭ 16 (-96.92%)
Mutual labels:  creative-coding, generative-art
Blotter
A JavaScript API for drawing unconventional text effects on the web.
Stars: ✭ 2,833 (+445.86%)
Mutual labels:  creative-coding, design
generative-art-Processing
Processingによるアート作品をまとめたリポジトリです.一部の作品はopenFrameworksで書かれています.This is a repository for art portfolio of Processing art. Some of arts are written in openFrameworks, one of the C++ libraries.
Stars: ✭ 31 (-94.03%)
Mutual labels:  creative-coding, generative-art
worlds
Building Virtual Reality Worlds using Three.js
Stars: ✭ 23 (-95.57%)
Mutual labels:  creative-coding, generative-art
creative-coding-notebooks
🎨 An authorial collection of fundamental recipes on Creative Coding and Recreational Programming.
Stars: ✭ 17 (-96.72%)
Mutual labels:  creative-coding, generative-art
JRubyArt
JRubyArt a ruby implementation of processing
Stars: ✭ 87 (-83.24%)
Mutual labels:  creative-coding, generative-art
gestalt
Creative coding playground - Color, Note, Code
Stars: ✭ 16 (-96.92%)
Mutual labels:  creative-coding, generative-art
Artline
A Deep Learning based project for creating line art portraits.
Stars: ✭ 3,061 (+489.79%)
Mutual labels:  generative-art, creative-coding
Ofelia
A real-time cross-platform creative coding tool for multimedia development
Stars: ✭ 269 (-48.17%)
Mutual labels:  graphics, creative-coding
react-text-fun
React meets Blotter.js
Stars: ✭ 51 (-90.17%)
Mutual labels:  creative-coding, generative-art
generative-art
Generative art experiments
Stars: ✭ 113 (-78.23%)
Mutual labels:  creative-coding, generative-art

Glisp

A Lisp-based Design Tool Bridging Graphic Design and Computational Arts

Glisp, an acronym for Graphical LISP, is the prototyping project to experiment what if a design tool meets a way of creative coding, and obtain the self-bootstrapping power of LISP. This tool looks like the integration of Illustrator and Processing IDE at a glance. And in fact, it adopts both benefits of intuitiveness of direct manipulation on GUI and abstractness of programming language.

Glisp literally uses a customized dialect of Lisp as a project file. As the Code as Data concept of Lisp, the project file itself is the program to generate an output at the same time as a tree structure representing SVG-like list of shapes. And even the large part of the app's built-in features are implemented by the identical syntax to project files. By this nature so-called homoiconicity, artists can dramatically hack the app and transform it into any tool which can be specialized in various realms of graphics -- daily graphic design, illustration, generative art, drawing flow-chart, or whatever they want. I call such a design concept "purpose-agnostic". Compared to the most of existing design tools that are strictly optimized for a concrete genre of graphics such as printing or UI of smartphone apps, I believe the attitude that developers intentionally keep being agnostic on how a tool should be used by designers makes it further powerful.

Developed by Baku Hashimoto

Features list I've been fantasizing

✨: High priority
🍡: Personally think it'd be cool
🌶️: Important but I have no clue how to do

  • [ ] UI enhancements
    • [ ] ✨Selects path/group by clicking viewport
    • [ ] ✨Transplants Programmable Pen Tool
    • [ ] Touch-screen support
    • [ ] Much more intuitive interface for designers I prototyped here
  • [ ] Improve the GUI to allow non-programmers edit the project without seeing any Lisp code
    • [ ] ✨Layer list view
  • [ ] Lisp interpreter optimization/enhancement
    • [ ] 🌶️ Incremental evaluation system to avoid the overhead by re-calculating entire project for each tweak
    • [ ] Incremental Lisp parser
    • [ ] 🌶️ Enables to refer other node's value by relative path without explicitly defining a symbol, like Houdini's ch("../transform/tx") expression
    • [ ] Headless REPL environment to render images by command (partially supported)
    • [ ] Standalone JS library to dynamically render the sketch embedded in a web page
  • [ ] Timeline features
  • [ ] Raster image manipulation
    • [ ] Writes custom filters in GLSL (Interactive Shader Format might be useful)
    • [ ] 🍡 Captures still image from video input (e.g. webcam) to make a stop-motion
  • [ ] Abstraction of user inputs
    • [ ] Not only mice and keyboards, add support to bind commands with any controller's inputs via OSC/MIDI on the fly while you design. The notion "remembering hotkeys" will be vanished.
    • [ ] 🍡 Wouldn't it be cool if we can even use Leap Motion to record an animation...?
    • [ ] Input hooks. Quantizing, copying, flipping, and smoothing the mouse coordinate for instances.

Helpful Repositories

  • The implementation of Lisp interpreter is the modified version of Make a Lisp project.
  • Boolean Operator and some bezier manipulations by Paper.js.
  • Bezier curve analyzation by Bezier.js

Similar and Inspirational Projects

Below are all cool projects I've deeply inspired by.

Information by Tomoya Matsuura and Yasuhiro Tsuchiya

Supporters

This projects are supported by these kindful people. I'd be appreciated if you would support me to cups of coffee:)

Sponsor @baku89 on GitHub Sponsors

And I especially appreciate Naoto HIEDA for his contribution to examples, suggestions, and English translation.

Development

The project adopts Vue-CLI.

  • Setup: yarn install
  • Launch server for development: yarn serve
  • Build: yarn build
  • Lint: yarn lint
  • Preview the documentaiton: yarn doc:serve
  • Launch the electron app for development: yarn electron:serve
  • Build the Electron app: yarn electron:build

LICENSE

This repository is published under an MIT License. See the included LICENSE file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].