- 26/07/2024
- Contracted Projects
- Hyeseon Oh
- #project, #contracted
About the Project
The client requested a program which would allow a drawing proportional to the actual measurement. This goal was to digitize the sketch process while coating a car. The following is a non-exhaustive list for the software.
- Basic drawing features
- Straight lines, polygons, freehand drawing
- Inserting texts
- Inserting points, or starting shapes from points
- Change colors
- Snap on existing objects
- Basic navigation using the touchscreen
- Editing features like selection
- Save to internal storage
- Export to a CAD program
- Information such as color must not be lost during the progress
There was an additional update planned to compensate the drawing using a gyro sensor, but was ultimately cancelled because the accuracy was not enough.
Implementation Details
The first release of the project was implemented as the following:
- For CAD compatibility, the internals of the internal file somewhat corresponds to the DXF file format
- Shapes are saved block-by-block
- A block can have multiple shapes. However, they must be connected.
- Separation of pointing device inputs and touch inputs
- Pointing device inputs are separately handled
- Basic multi-touch handling like pinch to zoom
- Segregate touch screen events from pointing device events
- Internal data structure consists of polygon, points and texts
- Curves are not supported because it would lead to unnecessary complexity, and the client would be post-processing the sketch from a CAD program anyway.
- Therefore, freehand drawing is actually implemented as a polygon with many points.
- DXF export is implemented by hooking to a JavaScript library
- React Native app was being used as a bridge
- In planned additional versions, I was going to use the in-app JavaScript feature from Jetpack instead.
Figures

Contribution and Information
- Period of Contribution
- First release: 11/2022 ~ 12/2022
- Planned additional features: 7/2023 ~ 9/2023 (cancelled)
- Total Participants: alone
- My Roles: entire designing and development
- Used Tech Stacks: Kotlin for Android, React Native (used in the initial release for bridging with JavaScript code)
I cannot provide the actual software and/or the entire source code due to the NDA.