Yeah I'm very familiar with Josh Ge and Rex - my current project uses rex files for loading images - I just have a lot of metadata I bake in through hacky ways and rex format is not very flexible - rexpaint is great though
I don't use the app often, but I felt comfortable purchasing because it wasn't a subscription. The few times I do want ASCII art, it does the job perfectly, so it works super well to have in my back pocket. Thanks for not going the subscription route.
Are there any enhancements that you've wanted to do, but haven't had the time?
I'm a huge fan, and am surprised how stable Monodraw has been for me. I've kept a single, growing document open as a scratch pad for the last three years. The only downtime was converting it to the new-ish file format haha.
There’s this layout library in C called clay which is basically a renderer agnostic flex box style layout engine. You might be interested in reading its source!
Yeah, there's a few such libraries that I'm aware of but I haven't had time to evaluate them. I do plan to at least look into them and make decision from there.
nucleic/kiwi uses the same algorithm that autolayout uses. It's also a tried and true implementation I've used many times, including in console environments.
In the retro computing world, the use of "ASCII" to construct levels and worlds is quite prevalent.
I immediately considered whether Monodraw might be used as a kind of level editor in that context.
Would you consider adding an '8-bit character bitmap' mode, which allows for the bitmap to also be edited?
With such a feature, Monodraw would become immediately applicable to those of us building retro games for older platforms where this technique is used rather extensively to produce compelling art-work.
For context, here is an example game which uses plain ol' ASCII chars to deliver some fun Moon Buggy action:
> Would you consider adding an '8-bit character bitmap' mode, which allows for the bitmap to also be edited?
Can you clarify with an example? Monodraw supports "surfaces" which are just like bitmaps - you can use the Pencil tool and draw on those surfaces with any characters you want (there's a palette in the inspector), just like a bitmap editor.
Adding more character sets besides ASCII and shape elements?
Having all the Unicode emoji galore as an option would be great. Not just for colorful code docs, but millions of social media content creators out there!
I guess we might be describing the same thing, and I am yet to have time to download and play with Monodraw (IT policies), but if there is indeed a way that surfaces could be replaced at a pixel level, so that for example the 'A' character becomes a Pacman, then we'd be aligned.
The only issue is, are these surfaces 8x8 or similar, and would it be possible to load in a 6x8 bitmap, for those unusual 8-bit computers of the era which used them .. I refer to my favourite system of the period, the Oric Atmos, which graphics techniques are described here: https://osdk.org/index.php?page=articles&ref=ART9
IF I can edit the bitmap and render as 6x8 characters, Monodraw would be immediately useful for level design. In any case, when I have access to a non-work computer, I hope to spend some time digging in and informing myself, so apologies if none of this is relevant ..
There are plenty of tools which can be used to do these kinds of projects, I'm more intrigued by the nice interface of Monodraw and whether it can be added to the repertoire ..
Not parent commenter, but I've been using rexpaint for a while but the editor is clunky and format too limited, I've been looking at other options - At a quick look monodraw does look interesting as a more fully featured replacement.
Like many others I also want to express my gratitude for a fantastic app. I bought it in 2016 and it’s seen a lot of use since then (recently almost daily). Being able to copy to clipboard for adding diagrams in source code is the killer feature!
I am trying it for the first time. One point of feedback, with the caveat that my only experience so far is opening the tutorial:
I immediately hate that when intending to scroll vertically using the trackpad on my macbook, it constantly unintentionally scrolls horizontally as well and I have to correct it. It is particularly irritating since there is no content on the canvas to see when scrolling.
Maybe I'm just super accustomed to browser scrolling behaviors, which snap scrolling based on initial direction.
I'm mostly posting this because its the kind of papercut that might be forgotten over time.
Once I started using it for actual diagrams, the issue completely faded away. Scrolling a super long vertical-only document is an unimportant edge case.
This is the god damn holy grail of ascii chart editing.
Great app... it's had a place on my macOS dock for years. I use it for adding diagrams to my team's internal developer documentation (mostly in a series of Markdown files).
What is the Unicode support? Namely the "Symbols for Legacy Computing"[0] (including the latest supplements [1]) with "newly available" full octants palette could be neat to get sub-character "octant pixel" precision. (And/or exploitation of Braille [2] for the same purpose.)
(Not a Mac user, so cannot try, and not clear from screenshots for me; these all seem like ASCII + )
It definitely looks like a cool app, and I was excited to test it out, but I don't have a Mac. If you ever hit the point where a rewrite makes sense, it would be awesome as a universal app.
One idea I've been toying with would be to do a Kickstarter-style campaign and if it reaches a certain threshold, then I know it would be worth porting.
Targeting Windows/Linux/web still means I cannot re-use the sources. But targeting web might be faster in terms of development time, although I don't have deep expertise on non-Apple platforms, so I cannot say for sure.
Why? There are already all kinds of web sites that do this kind of thing. Monodraw's unique selling point is that it's a native Mac app that takes advantage of the Mac UI and it's done well so the UX is top notch.
If you don't care about making the best possible app that you can, go ahead and do it in the browser. You will get something that's probably good enough and runs everywhere. But it's going to use more battery, more memory, and more bandwidth and not feel like a Mac app. Plus (IMHO) it's less fun to develop for the browser.
I believe the attention to detail that sets Monodraw apart can be transposed to the web as well — albeit diverging from MacOS conventions.
It’s possible to make great web apps, it just takes the kind of care and dedication that @milen has already proven to have. If the web interface lowers the barriers to developing a cross-platform version of Monodraw, then I think it would be silly not to consider investing in it.
Nice tagline, but surely it's not just plain text. It's some unicode shenanigans. How does one make sure their console can display all the necessary characters? How does one make sure others can see their creation?
>I find it unlikely that such copy protection would actually convert a non-paying user into a customer.
I used to think that but then kept tripping across customers who ran multiple copies of my software after purchasing a single license. I now wish I'd tightened the DRM from the start.
I think you're missing his point. If you tightened DRM, would those customers that ran multiple copies pay for multiple licenses?
Fighting piracy is generally not worth it. Those people would never pay, so you're fighting to stop a pirate from using it, not to get them to pay. There's a big difference.
The way that DRM and similar user-not-in-control technologies are making the world into a skinner box is a bigger problem than anything solved by those technologies.
Companies participating in that transformation don't get my money and I'm glad to know that this isn't one of them.
People who pirate software at scale are not typically interested in ASCII art. It doesn't quite cross the threshold of business value and usefulness (e.g. SolidWorks, Photoshop) that would attract pirates.
Just wanted to say: really love the app. Been using it for years. I love the image overlay since I mainly enjoy making ascii renditions of pictures manually by hand.
3x2 were more popular, used in, among others, Teletext and the TRS-80. The only place we found the 4x2s was the Kaypro portable (using the upper 128 positions of the character generator plus a reverse video bit to get all 265 combinations).
Yeah, it was. After I finished working on the iOS app I was previously involved with, I needed to either find a job or make another app.
I was browsing StackOverflow and saw some cool looking ASCII diagrams, thinking to myself "How can I make these easily on macOS?". So that's how the idea was born.
I then spent about 1.5yrs from the initial commit until v1 release. Unfortunately, the financials didn't work out, so I had to find a job eventually.
But I'm still maintaining the app and do have longer term plans when my job situation changes.
you were involved with clear? damn! i was one of the first users back then, even using it to this day! monodraw looks awesome, will definitely check it out!
I was one of the co-creators of Clear and the developer who built the iOS app. It was co-created by me, Realmac and Impending. I had previously interned at Realmac and had been friends with the founder, Dan (they acquired another app of ours - EventBox, which later got rebranded as Socialite).
Vim’s modal editing, sans plugins, works surprisingly well for drawing too. Visual block mode is also helpful. At least in my experience, I built a puzzle game with pixel art elements[1] and I drew the initial puzzles in vim.
Sounds super interesting, where do you put these diagrams ?
It's an issue I'm seeing even for comments touching too much on algorithmic stuff. To take a somewhat common example, if you were dealing with a credit card payment flow, where would the explanation of how a transaction goes through a few states asynchronously, which all trigger a webhook callback ?
Obviously the people working on the code need to be aware of that, so documentation is somewhere needed. I've seen people put whole blocks in class headers, other sprinkle it all inside the code, personally I ended up moving it outside of the code. Where would you put it?
I personally just throw them at the top of my files as long block-comments, or sometimes inside/around very heavy functions. For example i often add little diagrams for when dealing with some bit-fiddly logic parts to easier visualize the bit-layouts.
But for architecture, either a whole text-file for it or at the top of the module
Thanks! Do you deal with the logic getting split/shared around the code ? For instance on the credit card example there will be probably be one central class (the transaction class?) but you'd need to know the whole logic in the card registration part or the webhooks as well. I guess you don't stick a diagram everywhere ?
On one hand, this could provide a lot of value as some things are just plain hard to explain using only words. On the other hand, aren't you worried about when someone else comes along and needs to update one of those comments? If they're not aware of this tool, it's either going to be incredibly tedious or simply not going to happen.
As the other commenters put it, i dont think this is a huge issue.
I usually use this for architecture level diagrams, and that shouldn't change often/at-all. In-case it does change, doing a new diagram is perfectly in-scope of whoevers working on that.
Looks like Monodraw a mac only BTW. That should be fine if macs are mandatory for all the devs on a project, but it would otherwise create a kinda weird situation.
In the same boat myself... would be nice if they'd develop a more portable version... that said, could probably make an extension for VS Code or Zed to do similar.
My point being that it is a very neat way to now-and-then onboard some new users. Wonder if those submitting thew 'news' are in any way affiliated, or perhaps - from the team.
Curious indeed, no offense in my previous comments, Sir. Perhaps you are the same Milen who worked on Socialite? Not sure I find it in your resumee but the Джумеров name matches this article .) https://www.novinite.bg/index.php/articles/6180/Prilojenieto...
I've fixed your GP comment now. Btw it's on my list to change this "two newlines to get a blank line rule", or at least to look closely at changing it.
Looks great, and also love the perpetual license for $9.99 rather than the host of subscription services, i'll probably end up buying it just to support good practices.
It's one of the few pieces of software I bought a licence for, rather than tolerate free tiers or simply not use it, because I approve of the licensing model.
Maybe just semantics? I think "license" is more technically correct. Even in the best consumer case, you are only "buying" a perpetual right to use a software product. Optionally, you might also get updates.
In the US, the First-Sale Doctrine won't apply to software (unlike tangible books and records) so you probably do not have the right to sell your copy of this software to another person.
Since that's not true ownership, I think it can only be described as a license.
But I'll agree that all sorts of shenanigans can, and often do, hide under that generic term. However, "buy" could suggest many substantial rights that are not on offer (most importantly distribution), so it's a bit of a quandary.
The phrase "Buy Now - $9.99, yours forever" might thread the needle. The sale page would still need to include all the legal terms, of course. I think "license" is a necessary word there.
Personal pet peeve, but the word people use really should be "lease." Copyright and patent rights are licensed (e.g. getting a license from Disney to manufacture Star Wars toys). The particular copy of the software you have is either sold or leased to you. If you buy a physical book, you are just being sold a copy. The book itself doesn't function as an ad hoc, theoretical license or anything.
Not sure how first sale affects software sales other than software rental in the USA is an exception to the first sale doctrine. Software rental is not allowed unless it's a physical video game copy for a video game console or you have a physical copy of the software and you can't just easily make a copy of it in the normal course of using it (not sure exactly what this would mean, but presumably things like software for embedded devices). There are exceptions for libraries and educational institutions.
A perpetual, irrevocable "lease" is just be a "sale". You are just selling a copy at that point.
Subscription-based/SAAS software is leased.
I know it's pedantic, but to me the key thing is that it is the rights themselves that are "licensed." Not specific copies. The license covers what ways you are and are not allowed to make more copies (that aren't just your personal copy). So e.g. Open Source/Free Software/Closed Source libraries can be "licensed" and copies of them can be modified and included in work you create according to the license.
But I don't think the software of a SaaS is leased, sold, or licensed. It's just a service that is available and perhaps promised to stay available for a term. And of course Monodraw is not a SaaS anyway.
Also not a lawyer. I have read more contracts than most healthy adults, but that is just as likely to be distorting as clarifying.
At least back in the day, it used to be common to "buy a license" or "buy a serial key". I didn't really put too much thought into the phrasing, as I haven't received any feedback.
Regardless, when you buy it, it's yours forever - no activation, no DRM, no subscription, no fine print.
Such an underrated app. I’ve used it for everything from network topologies and storage diagrams and even for my kitchen redesign. Works way better than every pricey specialized tool I’ve tried, and the ASCII outputs look way cooler with their old-school hacker ASCII aesthetic! Highly recommended.
While not exactly the same use case, I'd also like to point to REXPaint [1]. Same same, but different. And Windows only, though Wine might help under Linux.
I’m a big fan of durdraw[1] for crafting ANSI/ASCII art in the terminal, but this takes it to a whole new level, excited to try this especially if it includes color? From the website examples it doesn’t appear to include a color palette, but if it does then game on!
That’s great. You gained a new customer.
In the prompt's and Caves of Qud 1.0 era, I'd say ASCII art is a must, both in terms of UX and aesthetic in general.
I use Mermaid and such for a lot of technical documentation, but this seems like it's going to be much more straightforward, especially for quick and one-off diagrams.
Not sure how comparable they are since I never used Monodraw due to not running MACs, but there is https://asciiflow.com/ and https://monosketch.io/ which I usually use. The latter is using some advanced UTF8 characters and when trying to get it incorporated for my personal blog, I had to use their specific monospaced font from their repo, as otherwise lines wouldn't line up correctly.
Haven't so quickly gone from "woah, that's cool" to "purchase now" in a long time. This is awesome and I will use it daily.
There's a visual simplicity and legibility to the kind of straight-forward but slightly-decorated diagrams shown in the sample images. And the fact that I can now copy-paste them anywhere as well (rather than the classic "screenshot of a Miro or Paint.js board") is so cool.
Yeah, that seems bad. The whole point of the diagram was to explain something better than prose could, and now it is lost. I'm thinking the case were someone can make out the shapes/arrows/colors well, but not the text.
Can LLMs understand ascii drawings? Or produce them?
I’m trying to figure out a way to organize thoughts with charts in a way that provides useful context to an LLM and also that an LLM could theoretically generate.
I was struggling to come up with "worth it" ASCII-art-in-code scenarios for my codebase and found a post[1] with examples (that turns out to have been posted here in HN a while back[2]). Pretty cool.
Antique furniture is nice because it looks pretty and uses sturdy materials. I don't buy it for the pleasure of knowing how many hours, days or weeks a person slaved over it in order to pay rent.
Good art is good art. Focusing on the time spent making it is a poor substitution for the ability to critique the art itself.
Anyway, people made this same argument when image editors came into their own. There is a long, tiresome generational tradition of artists thinking the new crowd has it too easy and doesn't appreciate the grit that goes into making art in earlier mediums. We can do better.
https://asciiflow.com/#/
and
https://meatfighter.com/ascii-silhouettify/
to create input text for TerminalTextEffects to create terminal animations like the following:
https://chrisbuilds.github.io/terminaltexteffects/img/change...
https://github.com/ChrisBuilds/terminaltexteffects