Git Product home page Git Product logo

ronin's People

Contributors

aaorris avatar acdean avatar blad avatar cale-bradbury avatar cblgh avatar eelfroth avatar franciscod avatar jantosi avatar jhermsmeier avatar lctrt avatar mhetrick avatar msarchet avatar neauoire avatar ngradwohl avatar ragekit avatar rekkabell avatar setphen avatar stefanvanburen avatar xinniw 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  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  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  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  avatar  avatar  avatar  avatar  avatar

ronin's Issues

{:key 1 :b 2} - objects

currently we have ways to get data from objects but no way to create them. These would be useful to set option in other functions.

(def foo {:a 1 :b 2}) ; equivalent to const foo = {a: 1, b: 2} in JS
:a ; should be a new type TYPES.symbol
(:a foo) ; returns 1
(:c foo 4) ; returns default value 4
(:y (rect 1 2 3 4)) ; returns 2

(process {:contrast 0.5 :brightness -0.5})
(rect 5 5 15 15 {:border-radius 4})

Language design goals

To help further development, it would be beneficial to discuss where we want to go with the language.

Here's a few ideas:

  • getting rid of callbacks in the base functions
    Callbacks are useful for users, but we should not have them in functions like draw or open - which means we need to find a way to handle async functions in a synchronous way. Outside of code clarity, this would allow to keep most code in a stack. Keeping code in a stack would make it easier to create helper tools that simply add a line to it, with undo/redo/cherrypicking.
  • handling async
    as said in previous block, I expect this to be important/useful but hard to implement.
  • separating the graphic function and the core language
    Structuring the code this way should make it easier to read and contribute as the feature set grows
  • Core language can be technical, graphic functions needs to stay intuitive
    Having a strong core language will allow the crazier stuff to exist, but we need to keep simple use cases simple to write
  • Having a "prelude" lisp library
    We could now write a lot of the upcoming functions by composing the existing "native" ones, then load that set of lisp code via (include)

Grid snapping doesn't use cursor hotspot

When I use vectors with dot-grid the snapping happens at a point somewhere around my cursor seemingly at random, rather than the closest grid point to the cursor hotspot.

decouple canvas processing functions from fixed canvas target

Currently, the surface layer is fixed to the #surface canvas. By allowing to target and create temporary layers, we could have access to more blending functions and easy drawing on guide layer

(layer layer1 (fill (rect 10 10 20 20) "red")
(layer layer2 (fill (rect 15 15 20 20) "blue")
(blend (
  (normal layer1 1)
  (darken layer2  0.5)
))

and to define guide layer drawing

(defn hrule (x color) (layer _guide (stroke (line x 0 x HEIGHT) 1 color))

(hrule 40 "red") ; could use theme color by default?
($hrule)

not open source

The description in the README says this is open source software, but CC-BY-NC-SA is not an open source license. (It is not even recommended for software use by Creative Commons.)

Pressing 'Enter' on the help screen prevents closing the help screen with 'Escape'

When Ronin is being served by the Python script, typing ? in the command prompt will show the help screen in the same window.

This fires commander.passive(), which shows the help screen. Pressing enter will close the command prompt and clear out the input element (commander.hide()). As the listen_onkeyup() function continues, it then fires commander.passive() again, but this time there is no command in the command line, so there is no key set on line 50 of commander.js. commander.passive() clears out ronin.module on line 53 of commander.js and then tries to find a module by the key. Since this doesn't exist any more, it leaves ronin.module null.

Trying to press escape after this will do nothing, since ronin.module no longer routes the escape key to the help module.

I was going to create a PR for this but realized there are lots of ways you could fix it and I wasn't sure the best method. You could lock the command prompt to open, you could prevent ronin.module being nulled if a ronin.module_lock var was set, you could try to detect if the help screen was open and then just always have escape hide it if that's the case...

How to use/download/dev?

I am super hyped about this app, but I have no idea how to use it.
How do build it. How to run it.
There is no explanation, if there should be, anyways.
How?

no license terms

I have not found anything about license terms for this software. Can I even legally use it?

Please add a license, preferably one of the copyfree licenses so I can be sure I can actually use it everywhere.

Thanks.

Weirdness with rendering and OSC

changing the last few lines of the on-animate example to use OSC:

...
(defn redraw 
  () 
  (
    (clear) 
    (times seg-count draw-dash)))
(on "/a" redraw)

and then changing the code and attempting to re-render causes the sine wave to continue to be rendered until Ronin is restarted. Arch Linux, Itch, 'Version 20'

lambda shorthand '(echo 1)

would be nice to have a way to write short lambdas

; minimal
'(echo 1) ; equivalent to (lambda () (echo 1))

; advanced
'(add %1 4) ; equivalent to (lambda (a) (add a 4))
'(add %1 %2 %3) ; equivalent to (lambda (a b c) (add a b c))

Magnet is broken

/sources/scripts/modules/magnet.js appears to be broken.

The line ronin.grid.draw (size, ronin.magnet.step) appears to be broken in two ways. size is not set and, more importantly, ronin.grid.draw doesn't exist. From a little digging I'd guess you changed ronin.grid. to ronin.guide but there isn't a compatible draw method in guide.

When I run magnet lock: 10 in the commander errors are thrown which lead to this line, but also the cursor disappears and becomes unable to draw. Not sure how those issues are related, but here's the info.

I've currently run out of time, and wanted to drop this bit here, but I'll continue to look into it when I get some more time later. Thanks for the awesome editor.

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.