MNic
-
Posts
1 -
Joined
-
Last visited
Reputation Activity
-
MNic reacted to Tim France in Scripting
Yes, there will be some notion of a plugin / add-on package and they won't have to be single-execution-and-stop scripts like in these examples.
I'm not in a position to promise anything (even with the bribe of a cuppa) but we have done some work on panels because it feels like having some built-in support for UI would be of value.
-
MNic reacted to Tim France in Scripting
Hi folks,
I thought I'd give you a quick progress update and let you see some of things we've been working on at Serif Labs. We now have a scripting core that we're reasonably happy with and have put together a little test area where we can run Javascript code, so I thought I'd show you some of that. Things to note:
This is all VERY early, like pre-pre-pre-alpha. The JS API is extremely fluid and is constantly changing. This is not how the Affinity suite will run scripts and plugins; it is just a sandbox window for internal testing. There is still a huge amount of work to be done. I can't provide any timescales for when scripting will be publicly released, for Beta or Retail. Constructive feedback is welcomed, but I won't be able to answer all questions - see previous points. I'm not claiming any of these examples are particularly useful on their own; they're just to demonstrate some basic scripting functionality. Re Javascript async - yes, we support it, I've just not recorded anything yet. The sleep calls are there for screen-recording purposes only. Here are some demos as low-res gifs. If you want to take a closer look, movs are attached.
Create a Mandelbrot image
Some dodgy physics
Insert a dragon curve
"Emojification" (translation?) of text
Create a grid of colours
Select and hide based on hue
Replay a document's edit history
mandelbrot.mov
balls.mov
dragon.mov
grid.mov
hue.mov
replay.mov
emoji.mov
-
MNic reacted to Tim France in Scripting
Hi all,
The team has been making good progress. I don't have any updates on a release date but please be assured we are not sitting on our haunches - we want to get this feature out as much as you want it out!
Naturally we've been exposing more of the apps' functionality to scripts, but we've been working on plugin-specific technology too. For example, there's a new asynchronous file i/o and networking API, initially driven by the Javascript layer but then we thought it would be good for the lower level C/C++ plugins to have access too. Obviously with local and remote i/o, we've had to be careful that a script isn't covertly sending user data somewhere, so we've introduced a permissions system for Javascript plugins - unless you allow a particular script network access, it won't be able to use the networking API. It may not be a big shiny WOW! feature, but it's important to get these things right.
Anecdotally, I can tell you we've actually used some scripts internally to do some genuinely useful stuff that would have taken literally days to do manually. One script I wrote optimised a document and removed about 60000 layers. There have also been relatively simple layout and alignment tasks that scripts can munch through in the blink of an eye. Last week I wrote a script that split a pixel layer into new pixel layers containing the blocks of grouped pixels. Even the pixel processing was done in the script - I didn't have to rely on the app to do the heavy lifting for me because our performance is good enough to implement DBSCAN in Javascript.
Please be patient. We know you all want scripting available yesterday, but we're getting there!
-
-
MNic reacted to angelhdz12 in Scripting
I think the best approach is server/client. Discord did it this way, and in their Discord's server, they have separate channels for each programming language that have a Discord Client API, and you can even request a channel if there's a language that doesn't have one, but is active and you want to work on the API for said language.
This way, everyone can enjoy controlling Affinity Suite programs from their favorite languages, and then the debate is over. No more "my language is better than your language" silly arguments.
You start the server with a button or menu option in the Affinity programs, then in your favorite language, install the affinity client library, import it, connect to the server, and start calling the methods that will send messages via Sockets or HTTP requests, to the server, and the server then process the messages and send the actions to the program.
I expect this on version 2.0 if I will spend money to upgrade.
-
MNic reacted to kimtorch in Scripting
Are there any plans to add scripting support?
I notice there is no Applescript library at all but am interested to know if there are plans to add Applescript or perhaps Javascript support. Virtually everything we do as far as creating PDFs, packaging, placing images and text, formatting, proofing, sending pages to print etc is done via script.
Tagged text goes hand-in-hand with scripting so I think this needs to also be supported.
-
-
MNic got a reaction from angelhdz12 in Scripting
Just chucking another request for scripting support onto the pile. I'd dearly love to jump over to Affinity Designer but it just won't work for me and the team I work with until we can do some automation of stuffs.
