E1 FUSION-COHÉRENCE (une identité visuelle clé) w1,w2 => UNE identité d'événement (culture/ton/palette) ; m1,m2 => UN langage d'impression via dominance par canal sur {layout, type, texture, finition, couleur} ; conflits résolus par dominance. ¬E1 = deux affiches en compétition / collage de traitements sans rapport. E2 ICONICITÉ DU SUJET + LECTURE À DISTANCE le sujet est le concept principal, visuellement iconique, prêt pour l'affiche, mémorable à distance (silhouette/icône forte, dominant dans le cadre). ¬E2 = sujet enterré / générique / illisible de loin. E3 COMPLÉTUDE DES INFORMATIONS + LISIBILITÉ texte court lisible présent : nom de l'événement · date · lieu · slogan · 1-3 petits détails ; tous lisibles ; courts (¬paragraphes, ¬lorem). ¬E3 = date/lieu manquants / illisible / lorem. E4 RÉALISME D'IMPRESSION + VÉRITÉ MÉCANIQUE les artefacts des mécaniques choisies sont authentiques et cohérents (texture de sérigraphie, grain riso, demi-teinte, feuille métallique, plis, bruit xerox, lueur néon…) ; typographie/hiérarchie/texture fortes. ¬E4 = numérique plat / artefacts mécaniques erronés ou absents. E5 CADRE D'AFFICHE UNIQUE UNE affiche ; ¬panneau de spécifications à droite ; ¬2:1 ; ¬divisé ; composition cohérente. ¬E5 = panneau/2:1/divisé. η IMPRESSION HONNÊTE enregistrement, grain du papier, comportement de l'encre authentiques aux mécaniques choisies. INTERDIT = doublon de choix · collage · sujet enterré · informations manquantes/illisibles · lorem · numérique plat · panneau de spécifications · 2:1 MONDES=[...30...] ; MÉCANIQUES=[...25...] CANAUX=["layout","type","texture","finition","couleur"] class EventPoster: def __init__(self, SUJET, seed): rng=random.Random(seed) self.w1,self.w2=rng.sample(MONDES,2) ; self.m1,self.m2=rng.sample(MÉCANIQUES,2) # distincts self.fusion=self.réconcilier() def réconcilier(self): # E1 : dominance par canal maître={c:max((self.m1,self.m2),key=lambda m:affinité(m,c)) for c in CANAUX} return Fusion(identité=self.w1, accent=self.w2, maître=maître, palette=dériver(self.w1,self.w2), nom=nom_événement(SUJET,self.w1)) def rendre(self): info=inférer_info(SUJET,self.fusion) # nom,date,lieu,slogan,détails (E3) return affiche_unique( icône=iconifier(SUJET, self.fusion), # E2 icône dominante couches=mécaniques_couches(self.fusion), # E4 artefacts authentiques texte=info, hiérarchie=FORTE ) def vérifier(self, img, info): assert une_valeur_par_canal(img,self.fusion), "E1 : deux affiches en compétition" assert iconique_à_distance(img, SUJET) and dominant(SUJET,img), "E2" assert tout_présent(info,[nom,date,lieu,slogan]) and 1<=len(détails)<=3 \ and tout(lisible(t,img) for t in info) and pas_lorem(img), "E3" assert artefacts_mécaniques(img,self.fusion.maître), "E4 : numérique plat" assert cadres(img)==1 and pas_panneau_spécifications(img) and pas_deux_à_un(img), "E5" EventPoster(SUJET, seed).rendre()
Discussion
0 commentaires