Jump to content

Recommended Posts

Ok, so I have really been enjoying using Affinity Designer for creating images. I still believe that it is the best you can get right now. However, with using it more and more, I notice that there are certain situations where I get to a point, where I see the limits. The attached image is a perfect example for that. The issue here is, that both the grid and the sun pattern are all placed by hand. Thus they either take very long and/or have imperfections. What I would love to see is some sort of scripting functionality, so that I can let the computer generate these patterns for me. That would also allow me to animate or generate frames for some graphics.

So when we would take the sun as an example, I would have used a pattern, where the subtracted lines are getting taller towards the bottom, and the visible lines also getting taller at a different ratio. When I would solve that by using variables, I could generate animated lines by simply changing the variables.

More important even would be to generate that grid at the bottom. Currently, I had to manually place all lines, and while the vertical lines should be perfect, they still took extremely long to make. The horizontal lines are only approximated by visuals, and sometimes look weird because of that.

I even thought about making myself a simple script to generate an svg that I then can use...

The results will just be cached. In that, you would be able to access all features of Affinity Designer via code.


To give you a sense of what I would imagine, this is what I would write to script the grid. It is kinda C-ish, but I just used {} do declare an Array.:

//Script for Rectangle 4 Fill

int vertLinesCount = 100;
float linesWidth = 5.0;
float yPos = 0.0;
float horizontalLinesDist = 20.0;
float hLineHeight = 5.0;
float xVanishingPoint = Image.Width() / 2;
float yVanishingPoint = Image.Height() / 3 * 2;

void rectangle4() {
  //Generate a set of Trinagles as the vertical Lines
  for (int i = 0; i < vertLinesCount; i++) {
    addPolygon({{Image.Width() / vertLinesCount * i, 0}, {Image.Width() / vertLinesCount * i + linesWidth, 0}, {xVanishingPoint, yVanishingPoint}});
  //Generate a set of rectangles as the horizontal lines
  for (horizontalLinesDist; horizontalLinesDist < 0.01; horizontalLinesDist = horizontalLinesDist / 1.1) {
    addPolygon({{0.0, yPos}, {Image.Width(), yPos}, {Image.Width(), yPos + hLineHeight}, {0.0, yPos.hLineHeight}});
    yPos += horizontalLinesDist;

Please note, it is not fully thought through, just to give you a concrete example of what would be possible with that. With a bit of tinkering, you could get the grid to be able to be animated as moving towards you or away from you.

Seriously, With that, Affinity Designer could possibly get the most advanced Vector Drawing and Animation Tool ever.

Please feel free if you have any questions, I also have a lot more ideas for that and also I can give very concrete suggestions for implementation.

About me: I am an 18 Years old computer science student living in Germany, I have a good amount of experience in Java, Kotlin and C/C++, some in C#. So I should have quite good knowledge of what limitations one can face when implementing such features.



Share this post

Link to post
Share on other sites

I like the idea of scriptable alot. Why not expand it to make Affinity Scriptable Everywhere?

Opening access to all objects and creation methods would let people finally tweak and create their specialized tools and presets and shortcuts and take away pressure from devs, who could concentrate more on a solid core and care less about every special need that certain people have. Not that those are not important, au contraire, it is imperative to allow for more exotic solutions. Thats what many people like and need.

Having a thriving third party developer community can be a big boost for software. 3dsmax was and is so strong because all sorts of specialized plugins helped expand the core for special needs. Blender is scriptable down to the bones, as are all major (3D) digital content creation packages. Photoshop, Indesign, Illustrator have all some sort of API for scripting. This is a huge bonus for all.

It would be gread if version 2.x of the Affinity suite opened up to dev access. Preferably with some sort of industry standard like Python (but don't take my word for it, I just read, but do not develop myself :P ) 

Share this post

Link to post
Share on other sites

There are already threads requesting some kind of scripting environment, with considerable amounts of discussion. But consider: The Affinity apps are all still very much under development. Wouldn't it make sense to expect a scripting solution to be implemented after most of the development dust has settled, when at least most of the full feature set is in place?


Share this post

Link to post
Share on other sites

Join the conversation


Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.


×   Your previous content has been restored.   Clear editor


  • Create New...

Important Information
