Giter VIP home page Giter VIP logo

project-simple-drawing's Introduction

Simple Drawing

November 2023 ~ January 2024 (3 months)

This is a simple drawing web application made with p5js.

Features

  • Freehand drawing: Set color and stroke weight for freehand drawing.
  • Line: Set color and stroke weight for line drawing.
  • Eraser: Set eraser size.
  • Spray: Set spray color, size, and density.
  • Fill: Set fill color, density, and spread.
  • Free transform: Adjust control points after drawing freehand lines.
  • Cut and paste: Cut and paste parts of the drawing.
  • Blank canvas: Clear the drawing and load a blank canvas.
  • Save file: Save as a png file.
  • State preservation: Maintains color, stroke weight, and other options even when switching tools.

Technical Focus

  • Practiced using the p5js DOM library.
  • Learned the principles of drawing tools.

Demo

draw-demo.webm

Visit the Site

Tech Stack

Frontend

  • Library: p5js, p5js DOM
  • Language: JavaScript

Backend

  • None

Cloud Services and Deployment

  • Hosting and deployment: Netlify

Reflection

  • I found tutorials on how to create a drawing board and tried to make a simple one.
  • The concept of p5js having a looping frame is important, but I still don't have a good grasp of it. I think I need to study it more.
  • p5js DOM seems to have some limitations, especially in terms of state management and node selection. And the readability wasn't very good.

Next

  • I'm considering whether or not to refactor the code into classes.
  • I think I can add various features like select, undo/redo, zoom, 3D model loading, etc.
  • I want to make it so that you can adjust the weight using the "[" and "]" keys like in Photoshop.
  • For some new ideas, I thought about making a feature where a random word is thrown at you and you have to draw a picture within a time limit, or a feature that shows the statistics of the most frequently used colors after drawing a picture.

project-simple-drawing's People

Contributors

urbanscratcher avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.