I present FairScan as a "simple and respectful" app. But those are not just words to talk about FairScan, they are key values that drive development. I dedicated one of my first blog posts to explain what I see as a "respectful" app and I think that "simple" also deserves a few explanations. What I mean by "simple" Let's first clarify what I mean when I describe FairScan as a "simple" app.…
Let's say that you signed a 5-page work contract. You have a paper document but no electronic version. Now you want to find a particular clause in the contract. How can you find it quickly? If you scan it with FairScan, you can now get a PDF which you can directly search for text. You may also copy any text from it, for example the paragraph you were looking for, and paste it in another…
I give FairScan to everyone who wants to use it. The app is free and doesn't include any behavior that goes against users' interest: no ads, no tracking, no collection of your data, no premium version... That's possible because FairScan does not have to serve the interests of a business. I'm an independent developer doing all kinds of tasks for FairScan: software development (of course) product…
I've been working actively on FairScan for almost a year now. Why do I spend my time working on an open source project rather than getting a "real job"? What drives me? To explain that, I have to write about myself, much more than I did so far in this blog. That feels a bit uncomfortable but it can help convey what I'm trying to achieve. Over the last 25 years, I had several jobs as a software…
When you start a scan in FairScan and point your device to a document, the app detects the document and displays a quadrilateral on top of the image to show how it will crop it when you press the capture button. Two separate steps happen one after the other: A machine-learning segmentation model detects which pixels of the image are part of the document. An algorithm derives a quadrilateral from…
In my previous post, I talked about failed scans, but what's a good scan? What does it look like? How is it different from a photo? It's a question that comes back regularly when I work on FairScan, and I still don't have a clear answer. What I know is that this question quietly drives many of the strategic choices I make. I recently worked on improving how FairScan handles color documents, and…
Since version 1.0, released last September, FairScan has been updated 11 times with regular improvements. Many of those updates focus on FairScan's core, the automatic processing of captured images, with the goal of producing clean PDFs effortlessly. And yet, the result is not always what you expect. The result is sometimes not as good as what you get from a commercial app, even if it's done in a…
FairScan was designed to make document scanning very easy. It lets you decide what to do with the resulting PDF: you can store it on your device, or share it using any app installed on your phone that declares it can handle PDF files. With FairScan 1.9.0, the latest release as of today, FairScan also makes it possible for other apps to call it directly and receive a PDF in return. Making apps…
FairScan's goal is to make it fast and easy for users to get a PDF. To achieve that, the app handles all image processing steps automatically. As a user, you have implicit expectations about the result. One of them is simple: if you see colors on your document, you expect a color PDF. Otherwise, you expect a grayscale one. That sounds easy. But with FairScan 1.7, I could see myself that the app…
My ambition with FairScan is not just to build an open-source app: it's to make an app that everyone can use, including all the people who don't know what GitHub is. That's definitely not easy and it takes more than writing good code. Before starting FairScan, I already knew there was a big difference between good software and a good product. Now, I experience it very concretely. This is my daily…
To automatically detect documents, FairScan uses an image segmentation model. The dataset needs to reflect the situations the model should be able to handle, so the model's accuracy depends heavily on the quality and size of that data. For FairScan, I decided to build a dedicated dataset and to make it public. That turned out to be quite an experience. Why building a public dataset? Before…
I released the first public version of FairScan about two months ago. It aims to be very simple , so that one can get a PDF in just a few seconds. To achieve that, the app relies heavily on automatic processing... but that's easier said than done. The very first review I got on the Play Store read something like: It doesn't work, "no document detected" on every page . Not exactly what I had hoped,…
I often describe FairScan as simple and respectful . But what does "respectful" really mean when we talk about apps? We live in a world where there’s an app for everything, and we’re constantly pushed to install more. Yet almost no one talks about "respectful apps". A quick search online gives barely a few hundred results. In other words: it’s not even a topic. So let me explain what I mean when I…
How does FairScan work at its core? How does it transform an image captured by the phone's camera into the page of a PDF document that doesn’t just look like a photo? From the user’s point of view, it feels like a single transformation that happens in less than a second. Let’s look at the different steps involved, illustrated with a visual example. Segmentation The first step is image segmentation…
I just published the first version of FairScan and I'm starting this blog to share my experience developing this project. This first post is about the vision behind FairScan: what I'm trying to achieve, and what I'm not aiming for. I started FairScan to fill a need I have, and one that many people share: every now and then I have to turn a piece of paper into a PDF. Of course, there are many apps…