Cosa faremo nel 2024
Siamo già nel 2024, ed è già marzo. Come l'anno scorso, abbiamo avuto una video call con tutti gli sviluppatori con sponsor, gli artisti e i volontari, per discutere degli obiettivi raggiunti l'anno passato, delineare i problemi principali da affrontare e impostare le priorità per quest'anno.
Sfide
Un problema molto serio è che il responsabile della conversione di Krita per Android e ChromeOS è troppo impegnato per lavorare a tempo pieno sul programma. Le versioni di Krita per Android e ChromeOS utilizzano entrambe la piattaforma Android, la quale cambia spesso e in modo arbitrario. Ciò significa che Sharaf ha trascorso la maggior parte del suo tempo a far sì che Krita funzionasse su Android (e ChromeOS) anziché, come era stato programmato, lavorare su un'interfaccia utente per tavoletta grafica dedicata per Krita su Android. E poiché il lavoro di aggiornamento non è stato fatto, abbiamo in quest'area un grosso problema. In più. dato che KDE ha ritirato l'infrastruttura di generazione degli eseguibili e spostato la loro generazione nel sistema di integrazione continua di invent.kde.org, non abbiamo più un sistema automatico di generazione degli eseguibili per Android.
Abbiamo perso anche altri sviluppatori con sponsor. Si erano ammalati per qualche tempo, ma recentemente hanno scritto sul loro blog che hanno iniziato un nuovo lavoro. Erano specializzati nell'aggiornamento delle librerie su cui Krita è dipendente ed erano davvero bravi a correggere gli upstream, ci mancheranno davvero tanto.
Infine, l'anno scorso siamo riusciti a inserire Krita nell'Apple Store di MacOS. Due anni fa, però, la responsabile di Krita, cioè io, ha cambiato il suo nome legale. I certificati necessari per firmare il pacchetto per lo Store sono scaduti e dobbiamo creare nuovi certificati. Questi devono possedere il nome legale attuale del firmatario e, per qualche ragione, è davvero difficile dimostrare allo Store che la stessa sviluppatrice, con lo stesso ID e codice, ma con nome legale diverso, sta caricando i pacchetti. Ci stiamo lavorando su.
Cose fatte l'anno scorso
Naturalmente, abbiamo rilasciato Krita 5.2 e due rilasci di correzione errori per Krita 5.2. Pubblicheremo almeno un altro rilascio di correzione errori prima di rilasciare Krita 5.3.
Il sistema audio per la funzionalità di animazione di Krita è stato completamente rivisto, convertito dal sistema QtMultimedia di Qt a MLT. La funzionalità storyboard è stata migliorata molto, abbiamo ottenuto il supporto per JPEG-XL giusto in tempo perché il team Chrome di Google decidesse di abbandonarlo, in quanto non vi era nessuno che lo supportava... Abbiamo anche ristrutturato il sistema che utilizziamo per generare tutte le librerie dipendenti su tutte le piattaforme. Bene, il lavoro su MacOS prosegue, e con PyQt vi è un problema. Ovviamente ci sono un sacco di altre cose da fare.
Wolthera ha iniziato a riscrivere l'oggetto Testo, ha quasi terminato e ora funziona nello strumento per scrivere, modificare e impostare il tipo di carattere. È un grande miglioramento con risultati davvero notevoli!
Buoni propositi per quest'anno
Questo elenco in parte è dell'anno scorso, in parte è nuovo.
Una precisazione importante: ora che il progetto KDE ha rilasciato la prima versione di KDE Frameworks per Qt6, si dovrà fare la conversione di Krita a Qt6. È un progetto grosso, non soltanto per la scomparsa di funzioni, ma piuttosto per le modifiche al supporto per la resa GPU. In Windows i driver OpenGL presentano molti errori e, per tale motivo, Qt5 ha offerto la possibilità di utilizzare il livello di compatibilità Angle tra applicazioni che usano OpenGL e la libreria Direct3D nativa per la resa GPU. Tutto questo è andato e, a meno che non riscriviamo il nostro sistema di resa GPU, dobbiamo reinserire Angle all'interno dello stack.
Nel complesso, molto probabilmente la conversione a Qt6 ci porterà via un sacco di tempo, impedendoci di implementare nuove e divertenti funzionalità. Ma una volta fatta, inizieremo a lavorare su un'interfaccia per tavolette grafiche facile da usare, sempre che continueremo a pubblicare rilasci per Android.
Questo non vuol dire che non vogliamo implementare nuove funzionalità!
Ecco un breve elenco:
- Implementare un sistema per creare fumetti di testo flessibili e integrarlo con l'oggetto testo, in modo che il testo scorra all'interno dei fumetti
- Implementare un nuovo tipo di livello, per l'infrastruttura dei fumetti (comic)
- Fornire integrazione con Blender (meno urgente comunque, poiché esiste un'estensione esterna molto utile che già la permette: Blender Layer)
- Sostituire l'attuale sistema di aree di aggancio con qualcosa di più flessibile e con aggiornamenti.
- Implementare un sistema per fornire preimpostazioni degli strumenti
- Creare una nuova interfaccia utente per la gestione delle tavolozze
- Aggiungere un supporto visivo alle forme d'onda audio delle animazioni
- Aggiungere supporto per il flusso di lavoro sui fotogrammi di riferimento delle animazioni
Abbiamo anche discusso l'utilizzo della GPU per migliorare le prestazioni. Un'idea originale era utilizzare la GPU per i pennelli, ma gli artisti hanno sostenuto che le prestazioni del pennello sono buone, mentre sono decisamente troppo lenti lo strumento di trasformazione Liquefà, le maschere di trasformazione e alcuni filtri. Alla fine Dmitry ha deciso di investigare
- ottimizzando le maschere di trasformazione sulla GPU
Ed ecco l'aspetto più dibattuto di tutti: dobbiamo aggiungere funzionalità di intelligenza artificiale a Krita? Ci sono state discussioni molto accese sull'argomento tra sviluppatori e artisti nella mailing list e su invent.kde.org.
Nell'incontro, gli artisti sostengono che la IA generativa è inutile e genererebbe al massimo modelli insipidi e ripetitivi, ma che IA in assistenza potrebbe essere utile. Per capire se quello che sostengono è vero, abbiamo iniziato ad analizzare uno specifico progetto: l'inchiostratura di schizzi assistita da IA. È utile, potrebbe sostituire i passaggi noiosi durante le fasi della creazione artistica, preservando comunque l'individualità artistica. Non sappiamo, ovviamente, se sarà implementata effettivamente in Krita, ma speriamo che l'indagine ci aiuti a comprendere meglio la questione, le possibilità e i problemi.
Nota: non implementeremo nulla che utilizzi modelli addestrati su immagini acquisite e ci assicureremo che l'impatto ambientale della funzionalità non superi la sua utilità.