Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: I open-sourced my web app alternative to Illustrator (mondrian.io)
644 points by artursapek on Jan 24, 2014 | hide | past | favorite | 92 comments

Great work Artur. I think this has potential, with enough contributors, to be a widely used tool. It's unfortunate that some people are getting really hung up on a specific interpretation of the submission title (that it currently has feature-parity with Illustrator), instead of talking about the seriously impressive amount of work you've put into this thing, or actual constructive criticism. Don't let it get to you, and keep up the great work :)

Agreed wholeheartedly, and this is as someone who's literally spent thousands of hours using Illustrator. I played with it for a few minutes and found the interaction to be very natural, and I only found a couple of bugs. I would suggest that if you avoid a lot of the print-specific aspects of Illustrator like color separations, supporting spot colors, screening options and a lot of their more gimmicky features, this could actually end up replacing it for a lot of people.

* one bug is here: http://mondrian.io/?p=5xf0YH Somehow I created a piece of geometry that's a line segment that can't be filled or stroked. Hover around near the end of that arrow and you'll find it. It was created using the line tool.

edit: never mind, it turns out I just didn't completely grasp the selection model. If I click on the line segment, the endpoints get selected and I can move it, but the fill/stroke panels don't appear. However, if I drag-select it so I get the line's bounding box, they do. The selection model is a bit quirky, although I suppose you're probably trying to simplify Illustrator's weird assortment of selection modes. Good luck with that. :)

The selection model used to work the way you expected - clicking on a line segment would select the whole shape.

I changed it to select only the two points that made up that line segment because I thought it made more sense, and there's usually plenty of hit-area on the inside of the shape for selecting the whole thing. In this case, I see how it was confusing.

I suppose I could revert back to the old selection model, or add an edge case where clicking on a line segment selects the whole shape if it consists of only two points. The current system would make more sense if there were more things you could do with selected points besides just moving them around with the arrow keys.

Either way, thanks for reporting this. If you catch any more problems, please log them in https://github.com/artursapek/mondrian/issues. :)

Wow. Love it. Love the visual history. It feels quite snappy. The UI aesthetics are great. You've got most the pen tool features I used in Illustrator, and managed to do it without having multiple kinds of arrows to keep track of, which always bugged me.

Thank you! Those are all things I focused on so it's a pleasure to hear that.

FWIW, I actually much preferred Illustrator's v/a distinction to the 'click on a point' / 'drag over line' distinction here.

Played around a bit for a few minutes and threw a few of my usually handwritten SVGs at it with disastrous results. View boxes don't seem to work, dashed lines, symbols, any kind of shape reüse in general; groups are ungrouped automatically, but apparently properties defined on groups are not propagated to child elements when ungrouping. And it manages to lock up Firefox and IE completely.

Not terribly impressed so far, but then again, I'm not a designer or an artist and I manage to write SVGs that fail in various renderers due to implementation deficiencies. But those I tested were not even complex or used advanced features.

At the moment I'd guess this is aimed at the most trivial vector graphics possible, i.e. only basic shapes, stroke and fill. It might work for that, but that's well beyond what I use of SVG or Inkscape usually.

You're right, it still chokes on a lot of SVG features. It is in no way spec-complete. All I can say is hopefully people contribute and it works better for everyone. The version I'm sharing is what I've been able to muster by myself in a year between school and work.

That said, if you opened issues on Github describing how to lock it up in Firefox and IE, and listing those SVG features that it doesn't render, that would be very helpful. Cheers.

Apologies, if that came across too negative. It's just a bit frustrating when you see »Oh, nice, it's based on SVG and compares itself to Illustrator and Inkscape« and try various things you have written in the past years only to notice that none of them work.

Pardon the meta-comment, but “reüse” is just so comically HN.

Assuming ygra is German he/she probably just hit the [separate] ü key. That being said, until their follow up above I thought the comment was intended to be a parody of HN negativity.

I think that it's terrific but does a disservice to Illustrator. It's terrific because you've built it - and what's there, works, wonderfully - but does a disservice to Illustrator because the devil is in the million details that Illustrator has already implemented. But I know you want help to make and iron out those details, so really well done!

Awesome! I'm really awful at drawing on my computer. Many failed attempts at trying to learn Illustrator, Gimp, etc. What's really cool about a web app of a drawing app is that you could use all the open source product tour JS libraries to create interactive tutorials... So impressive, thank you!

If you failed at using Illustrator or Gimp effectively, then you didn't try hard enough. Follow video tutorials and try to recreate graphics, in time you'll get better.

Ugh, this entire thing is in coffeescript too, now I have to learn coffeescript to make sense of this library.

You might be shocked (shocked!) at how clean and readable some of the CoffeeScript source is. To pick an example at random:


Artur really did a nice job with structuring this project...

Vanilla JS is easier for me. I don't have time to learn the workings of coffeescript just to read a library casually.

'The golden rule of CoffeeScript is: "It's just JavaScript". The code compiles one-to-one into the equivalent JS, and there is no interpretation at runtime'

There really is very little magic with coffeescript. Most of it is syntactic sugar which can be learned at a glance of: http://coffeescript.org/ .

Don't mean to come off as pushy but I think it's well worth learning what coffeescript is. Especially if you are familiar with javascript, as it's a straight upgrade in your toolkit.

As an additional testimony, I've actually been learning coffeescript without really knowing JavasScript, and it has actually gone fairly well. For the most part it's intuitive, and if you're willing to be a little frustrated figuring out some of the syntax changes it can be rewarding.

But obviously you do have enough time to complain about it.

> Ugh, this entire thing is in coffeescript too, now I have to learn coffeescript to make sense of this library.

This reminds me of a really funny bit Louis CK does about wifi on an airplane. https://www.youtube.com/watch?v=KpUNA2nutbk#t=234

Basically, the punchline is how ridiculous it is that some people can believe they're entitled to something being a certain way, that they didn't know even existed until a few minutes ago.

"Ugh, this really cool library isn't written in something I already know. What an asshole for doing that."

> Ugh, this entire thing is in coffeescript too

You mean the entire thing is noise free an easily readable, I agree.

I think the OP is not saying "it was impossible to learn", but "the amount of effort required to learn wasn't worth the return I would get from it". The latter may well be a sensible decision.

And it's great when someone tries to makes the learning process easier, and even better when they open source it.

Yeah, exactly. I also don't have a need to use any of those heavy weight apps more than a few times a year, so every time I go back, I have to start over again from scratch. Something appealing, lightweight, with good tutorials would be such a boon for web developers who don't have time to learn all the subtleties of Illustrator.

Coffeescript is way easier to learn than Illustrator.

I learned coffeescript in literally 30 minutes. I have a hard time taking any js dev seriously who sees coffeescript as hard.

Wow that's the opposite reaction than what I had.

This is terrific. Been fiddling around with the pen tool. So far, not much worse than Illustrator!

A few feature requests: having the shift-c tool (convert anchor point, I think) and being able to delete anchor points would be great. Much harder to work without that. Saving also didn't work the first several times I tried (but great to see auto-saving to ¿localStorage?)

Congratulations! I know how difficult this kind of stuff can be - I tried something similar a few years back and ended up dropping the project before it got too far; although I learned a lot about object oriented programming. Great work!

Very nice. Have you considered contacting the SVGEdit (https://code.google.com/p/svg-edit/) team to see if there are some synergies?

Is there a specific reason why you choose to implement most (all?) of the functionality yourself without building it on top of any existing libraries?

For fun

Not much to say other than: Wow. Great Job.

Can it be used to resurrect Aldus/Macromedia/Adobe FreeHand? I still can't use anything but it and I keep a windows VM on my Mac almost only for it.

This is amazing. I could have really used something simple like this in the past, and really appreciate the ability to use it in the future. Seriously, thank you!

Artur, the linked page is almost unreadable here (Chrome OSX):


The Maven Pro font appears to be infinitely thin at weight 300, it only starts being readable at 120px+. It doesn't have a version for that weight, so the browser is [failing at] simulating that.

Looks fine for me both in Canary and Stable on Snow Leopard.

Same here.

As someone who struggles in general with javascript this is phenomenal and makes me feel like a programming goof. Good job.

Nice simple editor web based editor, though I'd still use the fuller featured SVGEdit in most cases.

One thing that would really stand out would be an 'infinite zoom' I've seen implemented elsewhere.

There is already a database product called Pentaho Mondrian. You may want to think about chosing another name, there are still 1-2 alternative famous artists left :-)

I recommend "Rietveld".

This is really beautiful. A few questions:

- how do I add and delete points on a path?

- how do I change the node type? Eg, if there are no handles, how do I get handles (antlers I think you call them in the code).

- How do I go from colinear handles to "broken" handles: handles that form an angle at the node, so I can have two different curves joined at an acute angle at one node?

- How do I do intersections, unions, groups, layers, etc?

But I gotta say it again, it's really beautiful...

The is also http://vectorpaint.yaks.co.nz an online vector editor

This is awesome! I'm going to encourage my students to use this in my web design class to draw basic mockups.

they could also try http://schoolnotez.com/ :) it is also downloadable: http://schoolnotez.com/schoolnotez.zip

Great job. One request: Make the CMD shortcuts work for the CTRL key too. They don't seem to fire.

Nice. I have been thinking about building a web app similar to sketch (http://www.bohemiancoding.com/sketch/). This is pretty good.

Great job! Hope you find success with it and thank you for open sourcing it.

Pixlr is very popular among young crowd. This one pales in comparison in the same category (free). I don't know about open-sourced though.

Pixl is definitely cool. I don't think it's a really fair comparison for one thing Pixl is more like Photoshop rather than Illustrator. Pixl is a Flash app which probably makes a difference to some people as well.

Both are really cool online tools though.

Fantastic effort, I'll play around with it as much as I can. I am not exactly a coffee script expert, but I might poke around internals.

I love how this app is lay as a component base system, really great work. I think i will learn many thing through reading the source code.

Cool, but I need separate object and direct selection arrows like Illustrator. And rulers and draggable guides and a square grid.

Really really impressive, you roxx PS: http://tutorsbox.com creator

are you actually making money off that? check my profile for a link to an open source project of mine that has similar functionality with a lot more content management features.

A little

Cool. Looks like every class room needs it.

Do users draw or write using figure or e-pen?

Since when did an alternative to something stop needing to do at least as much as that something?

Thank you for doing this. This may seem like an ignorant question but can your app open .ai files?

Not yet.

AI, like PSD, is proprietary and unfriendly to developers because Adobe's software is really complex (and they don't want to share the market). I want to write a small backend that uses one of several AI->SVG converters out there so people can use AI files in Mondrian. Unfortunately I haven't had time yet.

This is awesome, thanks for this!

Beautiful code. Love it.

This is pretty awesome!

It's unusable on IE but looks interesting none the less.

don't know if you are interested in edtech but check out appynotebook.com ... it is an open source LMS with a vector graphics drawing layer and a lot more.

You really did put a lot of work into this, great job.

Artur this is pretty super dope wedep. Good job homey.

you could check out http://paperjs.org/ too, was originally a plugin for ai

Nice try. What type of OSFS license are you using?

Very cool, thanks.

Cool. It seems very responsive, which is great.

Didn't work at all for the MediaCrush logo.


Is this negativity really necessary? If you're going to leave a comment about something not working at least say what went wrong and what could fix the issues you had.

I'm sick of comments like this constantly polluting HN's community with negativity.

I meant to be more useful than negative, by offering a test file that didn't work so they could try it themselves and perhaps fix the problem.

I'm sick of people being sick of this stuff.

Don't bother. Parent commenter is your stereotypical programmer. Just take a look at: https://github.com/Imdsm/AutoGfy/issues/5

Some people just lack tact.

Wow, saying that he "lacks tact" is a bit of an understatement.

It is not negativity, it is the real world. The author put up his wares and someone reviewed it and shared his thoughts. Hopefully, maybe, someone will come along and say "hey I checked in a fix for it!".

Condition of source code got my upvote.

So did you just make this for fun?

Congrats ! This looks great :D

This is so sweet, Artur!

Really nice.

I like it works with Dropbox

Great job!

yeah ... just like Illustrator .. hardly any noticeable difference in in features ...

This is not an alternative to Illustrator.

It's a very very basic vector editor that doesn't even let you rotate things, import any standard vector formats (SVG, EPS, AI, PDF), have dotted outlines, distort, curve the text, etc etc etc.

I understand it was a lot of work, and you did a great job, but let's not pretend this implements even 1% of Illustrator.

Rotation is possible. Activate the (rotate indicating) tool and move the resize/move/rotate handles.

Ah, sorry. It works in such a non-obvious way, I missed it.

The rotation tool works exactly the way Illustrator's does.

In, it doesn't.

1) Select an object

2) Select the rotate tool (whose icon is the universal symbol for "rotate" that can't possibly be confused with anything else)

3) Click once to define an origin

4) Click and drag to interactively rotate about that origin.

This is how the Illustrator rotate tool has worked since, literally, Illustrator 1.0.

In Illustrator you don't have to do step 1 or 3.

You don't get the point of this, do you?

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact