Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Actualités


Index du Forum » Actualités » Concours de démos graphiques en Python
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Concours de démos graphiques en Python

Posté le 21/04/2020 18:26

Salut à tous, chers programmeurs et avides de toutes choses stylées sur calculatrices. Vous êtes tous tombés au bon moment, car il est temps de jouer avec les nouveaux modules de dessin en Python !

Casio a récemment annoncé puis publié trois modules de rendu graphique en Python pour Graph 35+E II et Graph 90+E :
matplotl, une version minimale de matplotlib très fidèle à l'original.
turtle, une reproduction en règle parfaitement identique à l'original.
casioplot, un module bas-niveau pour modifier les pixels à l'écran avec des performances très intéressantes.

On a déjà commencé à parler de ces modules en détails dans un article précédent, et on va continuer dans le futur. Pour l'instant, on peut résumer les nouveautés en quelques points !

• Les modules matplotl et turtle sont très conformes aux originaux, ce qui permet aux mêmes programmes de marcher sur calculatrice et sur PC. D'autres constructeurs comme Numworks ont fait ce choix, et sur Planète Casio on trouve ça génial.
• Le module casioplot permet de faire du dessin très précis. Les performances ne permettent pas de faire du dessin en temps réel, mais on peut déjà faire pas mal de choses !
• Malheureusement, on n'a toujours rien pour interagir avec le clavier (à part quelques essais avec AC/ON) donc on peut pas faire de jeux.

Ce qui nous amène au concours d'aujourd'hui. Pour lancer tout le monde sur le chemin de ces bibliothèques et découvrir tout ce qu'on peut faire de stylé avec, je vous propose un concours de démos graphiques accessible à tous !


Qu'est-ce qu'une démo graphique ?

Une démo graphique, c'est un petit programme qui affiche des choses stylées à l'écran, pour démontrer les capacités graphiques d'une plateforme. Ça peut être des animations stylées, des choses colorées, des cubes en 3D... ça peut être une seule image, une animation, peu importe.

En gros si c'est beau et stylé, vous gagnez.

Voilà des exemples de démos graphiques que j'ai codées sur ma Graph 90+E. Celles-ci tournent en temps réel ! (Les captures ont été prises par un logiciel vidéo donc c'est bruité, ce n'est pas un effet du programme.)




Comme vous pouvez le voir, il y a plein de choses à faire, et vous pouvez vraiment vous lâcher !


Dates, fonctionnement, et lots du concours

Voilà comment ça va se passer. Vous avez jusqu'au Samedi 9 Mai (un peu plus de 2 semaines) pour poster vos participations sur ce sujet. Pour participer, vous devez :

Poster sur ce sujet une image ou animation de votre démo. Votre démo doit fonctionner sur Graph 35+E II ou sur Graph 90+E. Dans les deux cas, vous pouvez prendre une capture avec Screen Receiver.
Si vous n'y arrivez pas, envoyez-moi le code par message privé et je vous enverrai l'image ou l'animation en retour. Vous pourrez alors poster. Ne partagez pas votre code sur ce sujet !

Si vous n'avez pas de Graph 35+E II ou de Graph 90+E, vous pouvez utiliser les émulateurs officiels qui disposent d'une version d'essai de 90 jours. Si même ça vous est inaccessible (parce que vous avez déjà utilisé la période d'essai, par exemple), vous pouvez m'envoyer le code d'un programme compatible Graph 35+E II ou Graph 90+E et je le lancerai pour vous.

À la fin du concours, vous devrez partager votre code et on discutera des techniques utilisées, des optimisations, et de la créativité dont vous aurez fait preuve pour abuser des mécanismes de tracé pas prévus pour ça.

Les meilleures participations seront classifiées par un petit jury (jusqu'à 5 membres hors participants) pour élire les démos les plus impressionnantes.

Il y a un lot à gagner, l'auteur·e de la meilleure démo graphique recevra une clé USB multi-émulateurs à usage à vie. Cette clé USB contient les trois émulateurs fx-92 Spéciale Collège+, Graph 35+E II et Graph 90+E, tous utilisables dans leur version complète sans limite de durée pourvu que la clé USB soit branchée à l'ordinateur. Ce système permet d'utiliser les émulateurs sur plusieurs ordinateurs sans difficulté !

Les deux émulateurs de Graph sont dans les premières versions Python. Mais pas d'inquiétude, car cette clé USB peut être mise à jour avec les nouvelles versions de l'OS ! Comme annoncé durant la tournée pédagogique en ligne ce mois-ci, la mise à jour avec les bibliothèques graphiques est disponible pour les clés USB d'émulation. Casio a pensé à tout !


Alors évidemment, contrairement au CPC ce petit concours repose sur un système de notation assez subjectif. J'espère que tout le monde saura prendre le lot comme une incitation à participer, avec le recul suffisant pour éviter les mauvaises surprises à la fin !


À vos calculatrices !

Je compte sur vous pour envoyer le feu avec ces nouveaux modules. Si les participations sont vraiment stylées, on pourra en mettre en page d'accueil !

Je déclare le concours de démos graphiques Python ouvert !

Fichier joint


Précédente 1, 2, 3, 4, 5, 6, 7 Suivante
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 25/04/2020 18:37 | #


Non, aucun port Python avec un module graphique n'existe sur les anciennes Casio monochromes…
(et édite tes messages s'il te plaît ^^')
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Math680 Hors ligne Membre Points: 455 Défis: 5 Message

Citer : Posté le 25/04/2020 18:37 | #


Potter360, si tu veux vraiment faire du graphique sur ta calculatrice, fais du BASIC ou un add-in en C
“Il y a bien moins de difficultés à résoudre un problème qu’à le poser.”

Vous êtes fan de « The legend of Zelda ocarina of Time »,si c’est le cas allez voir ZeldaGAME
mon projet de jeu basic casio
Potter360 Hors ligne Rédacteur Points: 1219 Défis: 2 Message

Citer : Posté le 25/04/2020 18:38 | #


ouaip et est ce qu on peut pas migrer de g85 à g35(sans couleurs du coup;;;)
Globalement, coder. Mal, mais coder.
Tituya Hors ligne Administrateur Points: 2138 Défis: 26 Message

Citer : Posté le 25/04/2020 18:41 | #


Puis que veux tu faire avec ce module ? Tu peux faire tout ce qu'il propose en BASIC Nous avons de bons tutos à ce propos, je t'invite à aller les regarder.
Puis si tu veux vraiment programmer en python sans calculatrice, utilise un ordinateur avec un module comme pygame
Bretagne > Reste du globe
(Et de toute façon, vous pouvez pas dire le contraire)
Projet en cours : Adoranda

Mes programmes
Hésite pas à faire un test !


Potter360 Hors ligne Rédacteur Points: 1219 Défis: 2 Message

Citer : Posté le 25/04/2020 18:42 | #


Tituya a écrit :
Puis que veux tu faire avec ce module ? Tu peux faire tout ce qu'il propose en BASIC Nous avons de bons tutos à ce propos, je t'invite à aller les regarder.
Puis si tu veux vraiment programmer en python sans calculatrice, utilise un ordinateur avec un module comme pygame
Jsp c cool
(En fait je veux faire du data management et du machine Learning -)
Et en basic c chaud je pense
Globalement, coder. Mal, mais coder.
Tbit Hors ligne Membre Points: 14 Défis: 0 Message

Citer : Posté le 26/04/2020 16:33 | #


Hey everybody,

First up, sorry for writing in english, french is my worst subject in school
For the competition, I decided to port the twisting torus effect I wrote in assembly to Python and to spice it up with monochrome dithering, here it is running in "real-time":


As you can see, it's fairly slow, running at about 1 frame every 2-3 seconds at default clock-frequency, so here's my question to the community:
What do you think about the use of overclocking in the competition? I think it's fairly frustrating to be constrained by the interpreter-overhead, and I would love to see more complex effects running on the calculator without requiring the knowledge of Assembly or C.
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 26/04/2020 17:28 | #


Hey Tbit, that looks very nice
I'm against overclocking in demo contests, let me explain you why.
The goal is to work with limitations and getting a good result. We have to work with limitations. Overclock is an easy workaround to speed issue. I'm sure you could simplify stuff like dithering and get a much faster program. Remember than demoing is about making choices, good luck with your project
ouais ouais
Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 26/04/2020 20:23 | #


Hello, y a t'il d'autre programe que screen receveir pour la capture sur graph+90 ? (souslinux notament)
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 26/04/2020 20:27 | #


Tu peux tenter de faire une capture avec Shift+7 puis la lire avec... soit Source Coder 3 (sur Cemetech : https://www.cemetech.net/sc/), soit un logiciel Casio (?). Ça c'est pour les images statiques.

Sinon je pense que Screen Receiver sera toujours l'option la moins douloureuse.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 26/04/2020 20:28 | #


Dans screen receiver ya Windows... UwU

Ajouté le 26/04/2020 à 20:48 :
UwU screenreciver massacre mon animation
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 26/04/2020 21:01 | #


Disons que tu peux faire un screen sur ton PC pourvu que ce soit le même rendu que sur la calculatrice alors.

Edit : Et la même vitesse, si c'est une animation (en ajustant le GIF)
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 26/04/2020 21:48 | #


disons que le taux de rafraichissement de screenreceiver est beauciup trop faible par rapport a mon programme… qui est une animation qui va assez vite
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 26/04/2020 22:47 | #


Si vraiment rien ne va, envoie-moi le code et je ferai une capture certifiée conforme au comportement sur calculatrice
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 27/04/2020 00:00 | # | Fichier joint


Lephe a demandé à ce qu'on tease. Du coup je tease


Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 27/04/2020 00:08 | #


Senpai demande de tease, donc je tease mon 1er projet (après je fais comme Oujii-sama)

https://tiplanet.org/forum/archives_voir.php?id=2512445
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 27/04/2020 02:24 | #


Because teasing is not enough…

https://linx.breizh.pm/n1updzpp.mov

Ce fichier sera automatiquement supprimé le 2020-05-27
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 27/04/2020 08:54 | #


Wait, c'est magnifique ça prince. Ah je pensais pas que t'aurais des perfs pareilles ! (Hésite pas à le faire en plus petit pour les perfs maxi)

Tbit a écrit :
What do you think about the use of overclocking in the competition? I think it's fairly frustrating to be constrained by the interpreter-overhead, and I would love to see more complex effects running on the calculator without requiring the knowledge of Assembly or C.

Thanks for your submission Tbit! This raytracing animations looks gorgeous.

I think overclock is fair game in real programs. My only concern is about the ranking in this contest; I feel like all submissions should be rendered with the same overclock parameters. After all, discovering the possible optimization tricks and typical bottlenecks is a hidden goal of this event.

So I'm fine with both allowing or refusing overclock as long as everyone can be ranked on equal grounds.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 27/04/2020 09:37 | #


Je partage ici quelques réflexions que je me suis faites hier. Si au passage ça peut aider à résoudre certains problèmes de perf, tant mieux.

– Il n'est pas possible de charger en mémoire un tableau trop gros. Mais ça on le savait déjà.

– Il n'est pas possible de charger en mémoire une fonction trop grosse, et ce quand bien même ses variables ne sont pas censées être chargées en mémoire. Pas possible donc de faire ça :
def f():
    yield [0, 1, …]
    yield [100, 101, …]
    …
    yield [10000, 10001, …]

– Il est possible de jouer avec import et del :
from data1 import a
draw(a)
del a
from data2 import a
draw(a)
del a

– Le temps de chargement d'un script est long. Dans l'exemple ci-dessus, environ 5 à 10× plus que le temps de dessin.

– Le transfert de fichiers dans la calto s'arrête au bout de 255 fichiers.


Bref, pas mal de problèmes techniques qui font que le goulot d'étranglement n'est pas spécialement la vitesse de calcul ou d'affichage.

Ajouté le 27/04/2020 à 10:07 :
About overclocking

In the video above, I overclocked to the best default profile of Ptune3. As you can see, it's still quite slow. I think performances can be improved a bit, but there will not be a turnaround.

With or without overclocking, the technical challenge stays the same: use the maximum of calculator capabilities. As long as every participation is evaluated in the same conditions, I don't care if we allow overclocking or not.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 27/04/2020 11:19 | #


– Il n'est pas possible de charger en mémoire une fonction trop grosse, et ce quand bien même ses variables ne sont pas censées être chargées en mémoire. Pas possible donc de faire ça :

Mais bien sûr, car le code contient déjà la liste en dur. Sinon, comment veux-tu que le code soit capable de créer la variable au bon moment ?

Par contre si tu fais :

def f():
    yield range(0,100)
    yield range(100,10000)
    yield range(10000,1000000)

Ça devrait marcher tranquille. Évidemment ta vidéo a pas cette forme-là.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Potter360 Hors ligne Rédacteur Points: 1219 Défis: 2 Message

Citer : Posté le 27/04/2020 13:15 | #


Peut on installer des addins compatibles g85 sur g90????(dsl c hors sujet mais flemme de recréer un post)
Globalement, coder. Mal, mais coder.
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 27/04/2020 13:19 | #


Malheureusement non, c'est pas possible.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Précédente 1, 2, 3, 4, 5, 6, 7 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 119 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd