Artist & software developer
Interests: Rust, web, crypto, dataviz
Work history:
Wormhole Labs 2023 - current
Kraken 2016 - 2023
Codecademy 2013 - 2016
Web-based vector graphics editor
License: MIT License
Artist & software developer
Interests: Rust, web, crypto, dataviz
Work history:
Wormhole Labs 2023 - current
Kraken 2016 - 2023
Codecademy 2013 - 2016
Can you add the ability to import a png image so you draw a vector image based off of the png? For example I have a png, I import it to the background and draw vector shapes over top of it and then save the svg. The png isn't actually part of the final image, I just want to be able to 'trace' it. Does this make sense?
Currently, your build instructions are erroring out on Ubuntu 14.04 with Cake installed via apt-get. When I run cake build
I get: "Class BuildShell could not be loaded." And if I run cake server
I get "Class ServerShell could not be loaded." Some vague Internet exploration indicates it could be because of a Cake version.
I have never used Cake before and it's entirely possible I am doing something bad.
Please add windows/linux standard shortcuts for those OS's (ie CTRL-Z for undo)
However its caching things I can't clear it as normal, and my local index.html
refuses to refresh in chrome.
Depending on the selection state, sometimes, dragging a path segment leaves one of the control handles floating in space during the drag.
Repro:
This is a display-only bug.
Is it possible to only move one of the handles in a point while leaving the other still? I tried alt, ctrl, shift (on Windows) but to no avail. In Illustrator I think you can do this with alt.
20 seconds is a long time. I want to reduce the cake build
compile time to 2 seconds.
Right now the compilation system is as dumb as it gets - it concats all the .coffee
files in a certain order and compiles the entire thing at once, every time. Even if you change a single character.
That means it does a lot of redundant work. It's slow and annoying, and will discourage people from working on Mondrian.
Since the source files are already split up, I'm picturing a system that only recompiles individual files that have changed since last time. It could compare whether they are changed using an md5 hash for a file each time.
There's still a question of how the system concats all the JS after doing this. I think it could just strip the surrounding (function() {
/ }).call(this);
s from each individually compiled JavaScript file, concat the results, and re-wrap it all.
This has to happen soon. I plan on taking it on.
I use Inkscape a lot for icons and like the idea of not needing a desktop app for that. Mondrian looks cool, and in functionality is very similar to SVG-edit (also open source).
Hence I wonder if you know SVG-edit, if there’s been talk with the devs, what the differences are, etc. I just think that lots of open source projects would benefit from cross-project collaboration or at least communication instead of just doing »yet another x« without checking with the people who did stuff which already exists. :)
I just found Mondrian and tried to import an SVG from my local machine. I tried uploading this and it crashed the browser every time.
Running Cr 32.0.1700.107 stable & OSX 10.9.1
Steps:
Similar to #5, you can provide an application manifest that allows the Web App to be converted into a standalone application. This works for Firefox atm, though Chrome has a very similar format.
http://www.w3.org/TR/runtime/
http://w3c.github.io/manifest/
https://developer.mozilla.org/en-US/Apps/Quickstart/Build/For_Web_developers
https://developer.mozilla.org/en-US/Apps/Developing/Manifest
https://developer.mozilla.org/en-US/Apps/Developing/About_app_manifests
https://developer.mozilla.org/en-US/Apps/FAQs/About_apps
(When publishing in the Firefox Marketplace you can define the target device type, i.e. desktop.)
One of the basic features I tried out right away.
This will take a while, but should be something to work towards.
mondrian
is going to need a smoothing algorithm for crayon points.
would be great to be able to use this offline!
geometry/text-editable.coffee is implementing on-canvas text editing by overlying SVG <text>
element with editable HTML <div>
element and applying similar styles on it. I have figured out an easier way to have editable SVG text:
<text>
element set contenteditable attribute on the nearest ancestor in HTML namespace to true (e.g. document.body.contentEditable = true;
)<text>
element selectable (e.g. svgTextElement.style.webkitUserSelect = 'text';
)In the near future this hack won't be needed at all since SVG 2 SVGTextElement would be inheriting from HTMLElement interface which implements contentEditable functionality [1].
[1] http://dev.w3.org/SVG/proposals/improving-svg-dom/#interface-hierarchy
Great on the grid! Now what would be cool is functionality to have the object you move (or point) snap to that grid. Best toggleable or possible to disable in some way because sometimes that’s also annoying.
It'd be great if you could disable the right-click context menu when using this app in Windows. 😸
Yes this would probably be hell to implement, given how obscure and convoluted adobe files are, but it would be a great feature to have.
This would be best implemented by including a separate .ai parser library.
Not sure if any javascript ones exist, though.
Ok so, this isn't about full tablet support. That would only be available via a plugin / extension.
I have an Intuos5 Digitizer tablet, and mondrian is not recognizing the click/mouseup event from the pen tip.
Summary: sometimes the "hit area" for a path segment is in the wrong place after a transformation using the utility window.
Repro:
If I drag the handle too far left, I get black; if I drag it upwards or downwards (outside the colored square) I get hues that aren't represented in the square. It's not an intuitive behavior; the handle should be constricted to the square color area.
Your jQuery version is severly outdated, the current line is 1.11 or 2.1. This leads to at least one issue, I got this message in the command line (roughly translated):
12:56:00.209 getPreventDefault() should not be used anymore. Please use defaultPrevented instead. jquery-1.7.2.min.js:3
Though this may also result in more errors, mostly interoperability issues. Generally, you should switch to the 2.x line because it's more optimized (it dropped support for very old browsers) thus faster and smaller.
However, you should consider switching to zepto.js (which is mostly interoperable with jQuery) and only include the scripts you really need, that will increase performance even more.
I haven't looked at the code yet, however I suspect that you might be able to drop any library alltogether without too much effort, and at most use microlibraries for specific tasks (like key handling) and use other native APIs directly. Though that's probably a bigger task, and upgrading the library version should be a good first step. :)
I think you can use Google Fonts and load fonts thru API to the fonts list. Like Google Docs dose. I think that would be added benefit :)
Path clipping is a tough mathematical problem that requires some non-trivial code. Instead of trying to do it yourself I would use JavaScript Clipper [1] library. Clipper doesn't have full support for Beziers yet (it's being worked on in the upstream branch, for now you would need to convert beziers to polygons), though it would be much more reliable than the current code in geometry/pathfinder.coffee.
cake styles
blank-overrides the build css files.
It seems as if lessc
wasn't added as a dependancy?
Hello, I would love to try it locally on my machine. I was searching for a pre-built package , but sadly, couldn't find one. Could anyone please provide me (and probably many other people in future) a per-built package of mondrian, to test it on mac OSX? If, that's possible, I would be pretty grateful! And, of course I loved the app and the fact that it's licensed under the awesome MIT, which is actually the cheery on the pie.
Great Work, Keep it up guys! :)
And, Thanks a lot for putting your hard work, in front of the public, as free code. It's because of people like you, that the tech industry continues to grow at a rate that far exceeds the imagination of most people, even in the tech world. so, Thank you for this!
---- Anime.sh
The Shift or Control keys should restrict angles (e.g. using the line tool, or the rotate tool) to increments of 15º (or 30º plus the 45º multiples)
I'm not sure whether we should be trying to remove jQuery. Grepping around, it looks like there's ~400 instances of jQuery methods being used.
http://artur.co/pastes/1390824908.txt
That's a lot. It would take a while to replace, and doing so might be a waste of time.
If we don't remove it, we could use a CDN like Google to serve jQuery instead and get more or less the same speed benefit.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.