Created a service that allows you to draw a photo-like picture with colored pencils.

December 20, 2023
Motivation

At home, while watching Prebato!!1, I was watching a colored pencil session and thought, “How can a beginner draw photo-like colored pencil art?” so I made a prototype of the service.


  1. “Prebato!!"(プレバト!!) is a Japanese TV program in which celebrities have their artwork assessed by an artist. ↩︎

Deliverables

You can play with it from the following link

Requirements

  • Image processing is done on the client side.
  • Build the front end with SSG (Static Site Generation)

To fulfill the above requirements, we decided to implement the image processing part in Rust, build it in Wasm, and let the front end handle it.

We hope you will play with it. We will add more features when we get more access.

Things I want to explore in depth

During the process of creating this service, I was concerned about the following. However, since we focused on releasing the service as soon as possible, we have not been able to look into them in depth.

Mathematical optimization part

  • Color composition was implemented using min for each element in RGB color space, but is that really appropriate?
  • SIMD in Wasm could be used to speed up image processing, but not started yet
  • It seems to be promising to reduce the problem to an optimization problem that seeks a Pareto-optimal solution of multiple indices based on the accuracy of the output painting method (an index based on some error with the original image) and the difficulty level, but currently only the former can be considered.

Front-end part

  • Initially, it was made in SPA for simplicity, but due to SEO reasons, the front end was migrated to Next.js SSG. I did a little research and found that there are some people who say that even SPA can be SEO friendly, but I wonder if it is true.
    • I wonder at what point in the browser rendering step, like title, meta tag, or browser rendering step, is it indexed? Is it true?
    • It takes a few days to be indexed by Google if we try to do a proof experiment, so it would be a bit time-consuming.

BizDev part

  • I made this with small children in mind, but I wonder if children these days play with colored pencils…?
  • Prevato! With the connection, it would be interesting to do the same thing with spray art!
Profile
profile image
This is the blog of a software engineer with a Bachelor’s degree in Information Science and a Master’s degree in Mathematics.