Git Product home page Git Product logo

barbara's Introduction

Barbara

Barbara is a novel live coding interface that enables users to design languages for visual geometric pattern generation. Inspired by algorithmic quilting patterns, Barbara helps users construct languages that mimic real-world quilting procedures which can be used for both live coding performance or digital quilt recreation. Users create languages and patterns in Barbara’s online coding environment with the Parsing Expression Grammar language formalism; the resulting patterns can be freely shared, remixed, and combined into new quilts. As a push towards the applications of language-oriented design, we created Barbara to broaden access to the power of computational media and the beauty of quilting for both programmers and quilters alike. Barbara is free and open-source software.

Homepage

Playground

Local Development Server

In order to create a local development server, clone this repo. You will need to have a local instance of MongoDB running.

Then create a .env file in the root folder and add the connection string. If you have named the database barbara, this may look like MONGODB_URI=mongodb://localhost:27017/barbara.

You can then run the server using npm start.

Repo Structure

  • changelog barbara changelog
  • public directory contains the vm code
  • models directory contains the mongodb model schemas

Acknowledgements

Thank you to Charlie Roberts and Gillian Smith for their help and support.

barbara's People

Contributors

dependabot[bot] avatar kitzeller avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

triptych repl-wpi

barbara's Issues

pattern versioning

I'm not sure if this is how you conceptualize variants, but it seems like maybe they're forks of patterns? What about being able to see all the various iterations of a pattern created by a single author? It would be awesome to be able to explicitly fork a pattern and also to just save new iterations. Perhaps you have to fork before you can edit another user's pattern? This is kinda what Glitch does if I remember correctly.

Basically, I think the variants view is cool (although I'm a bit unclear what qualifies as a variant... is it like a fork?) and would like to see it extended to cover minor revisions / changes to a pattern.

re-pinning 3D view only uses one pin?

seems like if you unpin the cloth simulation and then re-pin it the re-pinned version only gets attached in one location, causing it to fall awkwardly.

pattern images in variants view should be links

In the variants view for a pattern, each variant should be a link that opens the associated sketch... maybe also include a button to open it in a different tab, or make opening it in a different tab the default behavior.

make key combos contextual

If issue #6 is resolved, then I don't think you need to display shortcuts for parsing in the Input view (also, is there a better name than "Input" for this view?), and exporting seems like a rare enough occurrence that users could just use the File menu to do it. That would just leave a brief note that Shift+Enter === run, a single command that won't confuse anybody.

make variants accessible when pattern is open

Currently you can only see the variants / inheritance of a pattern if you use the link present on the Barbara homepage... this should also be available when editing, probably under "File".

"Please parse first" seems unnecessary

If you are in Input view or Live code mode and hit Shift+Enter without having parsed the grammar for the currently loaded file, parsing should just happen in the background automatically. If there's a parse error, you could pop open a modal dialog that prints the error and asks if the user wants to edit the grammar.

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.