Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Cassowary Version #3

Open
slightlyoff opened this issue Sep 3, 2015 · 6 comments
Open

Update Cassowary Version #3

slightlyoff opened this issue Sep 3, 2015 · 6 comments

Comments

@slightlyoff
Copy link

Hey,

This project is amazing! I made some changes to cassowary.js that make it ~2x faster in Chrome; updating should be straightforward.

Latest built version here: https://github.com/slightlyoff/cassowary.js/blob/master/bin/c.js

@mcbain
Copy link

mcbain commented Oct 12, 2015

There is also a fast alternative impl. https://github.com/nucleic/kiwi/tree/feature-js?files=1

@iamralpht
Copy link
Owner

Apologies for the slow reply. Map is a pretty big win for Cassowary :).

Oddly enough I've been thinking about using a simpler solver for Slalom -- I haven't encountered any situations where I have cycles in the constraints (I think the kind of positioning I'm doing ends up being much simpler than general purpose view layout) but I have run into a few situations where I wish I had non-linear relationships.

I'm planning on writing a simpler "spreadsheet" solver that just sorts a list of constraints into a DAG and then evaluates it. It would bail on any cycles, but I could then have non-linear functions and therefore express more UIs (hopefully I'd finally be able to do the Chrome Mobile tab switcher UI with multiple touch points, and do pan-rotate-scale too...).

The other alternative if that doesn't work out and I still really want non-linear relationships is constraint relaxation, but I'm scared off by the runtime cost currently :(.

@mcbain
Copy link

mcbain commented Oct 28, 2015

@iamralpht sounds pretty cool. Saw somewhere that you work for Tesla Inc now. Will this be also open source?!

@mcbain
Copy link

mcbain commented Oct 28, 2015

@iamralpht btw. Since Famous Inc. seems to be dead, the community seek currently for an alternative for javascript rendering engine. I mentioned your work there - http://forums.infamous.io., since simply draw boxes on the screen very fast is not enough to create a responsive user-interface :)

@iamralpht
Copy link
Owner

@mcbain Huh, I didn't realize famous had pivoted; hope it works out for them. My original plan was to make a UI design tool that ran on tablets and let you draw boxes quickly and express the (motion) constraints between them using your fingers rather than a lot of code. I figured Slalom was the part that didn't exist the most so that was what I worked on first. I did a few hours work on a tool to draw UI using gestures, here: https://github.com/iamralpht/drawgui It's obviously not useful yet though. Didn't get to hooking up motion constraints which is the fun UI engineering challenge :).

For Slalom to progress it needs to demonstrate building reusable components instead of one-off demos. It's not there yet, and the Box abstraction in particular is holding it back... Maybe it gets paired back to just the solver and motion constraints, and then can be integrated more easily with React.Animated or whatever other component system folks want to use.

@erikkaplun
Copy link

Has there been any news on any of this? It's really interesting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants