triangledraw / triangledraw-ios Goto Github PK
View Code? Open in Web Editor NEWTriangleDraw is a pixel editor for iPad and iPhone.
Home Page: https://apps.apple.com/app/id1453533043
License: MIT License
TriangleDraw is a pixel editor for iPad and iPhone.
Home Page: https://apps.apple.com/app/id1453533043
License: MIT License
Several users have requested individual customization of the dots, like this:
Automatic nodes remover
For my designs I am using Affinity Designer. When I finish my project in TriangleDraw I export it as a SVG to Affinity Designer. The problem is the project has so many nodes which I have to remove manually. It's a painstaking process.
PJ
The current app does only triangles. There are so many interesting grid types that can be fun to toy with.
Square grid.
https://en.wikipedia.org/wiki/Hexagonal_tiling
Insert picture tool
I would like to have this feature to draw on the photo or other sketch
PJ
This requires a more flexible file format, that can store image files inside it.
Maybe the file format should be a directory with files inside.
The older version of TriangleDraw had a "TriangleDraw" logo centered on the launch screen. It was a 1024x768 png file, so I didn't have to deal with different screen sizes.
With varying screen sizes it's more tricky to show a logo/icon on the launch screen.
Apply the Conway's Game of life algorithm. There are a few non-square variants that operates on triangles, hexagons, a long list of grid types.
A pause/unpause button, a step button (for when paused), easy to tap to change cells, and extra features could be a clear/random buttons or a super advanced menu that lets u change the ruleset.
Thanks to Chase Marangu for several GoL suggests.
Tapping this button multiple times is not good. It creates several documents in an undefined state.
There is a slight delay from tapping the "Create Document" button until the document have been fully created in the file system. A blocking mechanism is needed. That stays invisible if the document gets fully created within a reasonable amount of time. Otherwise a HUD is to be shown. Or an error message.
This is what it looks like when I'm using an ApplePencil and create documents rapidly.
Currently the Canvas menu is a mix of settings UI and export UI.
The UI becomes more legible by splitting it up into two separate menus, like this:
With the typical Apple "Share" icon for the export menu, and a "Gear" icon for the settings menu.
The export UI can have buttons like this:
I have made a few preparations. Technically it's doable. However usability is tricky.
It's a challenge is to not break the current UI.
Instead of complicating the existing app, then make a separate app,
where the UI is dedicated for colors.
It’s very rare to find an app or program with a good color selection ui. Sometimes they’re overcomplicated for the sake of having a lot of choice, and catering to people who know how to use hex color names. Sometimes they’re too simple, like snapchat, where you have a tiny sliding scale, and you’ll never get the same color twice. Perhaps have a fairly long list of colors, with word-based names.
How should the user interface work?
In terms of actually using the colors, perhaps you could have two options: one where you select a color, then pick all the triangles you want to turn to that color, and another where you can just place triangles in that color.
There is also the "Force touch gesture" or "Long press gesture", that can be useful for dealing with colors.
There is currently no support for colors and no support for layers.
Having a layer editor with these operations:
The current app has 2 colors: Black and White. This can be called a "2color layer".
Other layer types can be: "color palette layer", "color arbitrary layer", "normal map layer".
The current app has no export settings. When exporting then the entire drawing gets exported.
If the artist has made a tiny drawing, then it's currently overkill to export all of the empty space.
It may be a small area of the drawing that should be exported.
In the past I had the texts translated to these languages:
da
Danishde
Germanen
Englishes
Spanishfr
Frenchja
Japanesept_PT
Portugueseru
Russianzh_CN
ChineseI would like to localize all the texts again.
"The ability to copy and paste drawings from one canvas to another."
How should the user interface be like?
You could have the option to click a “copy” button, then it puts you in a mode where you draw a shape around what you want to copy, then it gets saved and you can paste it onto the same or other canvases and move it around?
Or possible selection shapes: triangle, square, hexagon?
The current symbol is generally used for sharing; for example in safari.
The triangles that gets pushed over the top-right edge, reappears at the bottom-right edge with Y axis flipped.
The triangles that gets pushed over the bottom-left edge, reappears at the top-left edge with Y axis flipped.
Then overflowing triangles behaves the opposite way.
Tap for displacing by 1 step.
Long press for displacing continuously.
Bigger drawing canvas
I like to draw in hexagon, but when I work on bigger object I would like to have ability to draw on bigger grid
PJ
expanding canvas
Expanding canvas may be useful in some cases as a workaround, because artwork gets cropped after applying the subdivision feature.
AS
Bigger canvas. That is indeed useful.
This requires a new file format. I'm thinking of using protocol buffers for this.
Ahmed Teleb writes:
When I save SVG it save with the black background, yes it’s separated to two layers
and it’s easy to be removed on any vector app, but it will be amazing to be able to
save only the design. that will save us as users some time.
So a setting for what is to be exported:
I'm considering making layers, where each layer can have different properties, such as is this triangle transparent or filled. However this is further into the future.
With iOS13 there is now dark mode.
I need to go through the app and make adjustments for this.
Your project uses SwiftyBeaver. SwiftyBeaver has security vulnerabilities that you may wish to address. Consider removing SwiftyBeaver if your app transmits PII. SwiftyBeaver/SwiftyBeaver#453
Basic color swatches
only to distinguish objects on different layers
PJ
Currently the user have to tap multiple times to move. It can be quite a lot of taps.
The "Rotate operation" currently only does 60 degrees rotations. So currently users have to the 30 degree rotation in other graphics editors.
I wonder if 30 degrees feels like an improvement over the 60 degree steps?
Currently there is export to PDF.
I have done experiments with export to SVG. However there are tiny unwanted hairlines between adjacent triangles of the same color.
@axello raised this concern:
The app starts in the browser mode, as if you are an experienced user. Would perhaps be nicer to start with a blank drawing for starters, or have a little onboarding which points to the big + sign?
That is indeed a thing that is missing.
I wonder how to do it.
The UIDocumentBrowserViewController
is a blackbox made by Apple, that indie developers can't make changes to.
The UIDocumentBrowserViewController
must be the root view controller, so I cannot present another onboarding view controller before it.
I can write a better explanation inside the App Store with a video+screenshots that shows how to get started.
The current app uses lots of screen estate for rarely used tools. These bottom toolbar items can be moved into a "Modify" menu as in Procreate. So there will be more screen estate available for the canvas.
The zip file can be organized like this:
original/
Drawing1.triangleDraw
Drawing2.triangleDraw
pdf/
Drawing1.pdf
Drawing2.pdf
svg/
Drawing1.svg
Drawing2.svg
Asset library
for keeping ready made objects for reuse in new designs.
PJ
This requires adding a copy/paste mechanism, maybe with a selection area.
Currently there is no way for the user to see if Symmetry is enabled and what kind of symmetry.
This can be shown with lines, indicating where the symmetry happens.
When the user have selected the "3 way symmetry mode", then there are 3 lines dividing the canvas.
When the user have selected the "xy symmetry mode", then there are 1 horizontal line and 1 vertical line dividing the canvas.
The user can enabled/disable these lines in preferences. Maybe the lines should auto hide/show while the user is drawing.
The core code is the "TriangleDrawLibrary", which has no dependencies on iOS nor macOS.
There's currently the iOS project, that uses the "TriangleDrawLibrary".
It's possible to make a macOS that also makes use of the "TriangleDrawLibrary".
Live symmetry tool
for drawing patterns and see changes in real time.
PJ
I'm thinking of showing a line where the symmetry is located, so it's easier to see what's going on.
I have posted my TriangleDraw drawings on Instagram and Reddit, and I no longer want to support social media platforms.
I think it's better to have a dedicated repository for drawings, where everyone can submit their drawings.
author/
drawingname/
original file
rendered file, png/jpg/svg
readme.md
Would love to test TriangleDraw on iPad - but can not be found in the App Stores?
Often a drawing is too rough and I find that I want smaller triangles for adding finer details. Currently the user will have to redraw everything all over. This is annoying.
Make a button for doing a "Subdivide" operation:
The overflow gets discarded, so that the canvas size stays the same.
Until 9mar2021 the TriangleDraw app have assumed that it's just a single user interacting with the app.
I have noticed when multiple kids are interacting with an iPad, they try to draw at the same time.
When multiple kids are touching the screen it causes major havoc. Two kids drawing at the same time may be interpreted as a pinch to zoom gesture. It freaks out the gesture recognizer code. So the drawing is not happening, causing confusion for the kids.
Allowing for multiple users to draw may complicate the UI. Two finger gestures are not possible, so this impacts zoom and scroll.
Perhaps introduce a lock/unlock button, that toggles two finger gestures.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.