init:
S'exécute une fois par pixel. Définis ici la valeur d'orbite initiale et les éventuelles variables auxiliaires.
Découvre comment les Definitions FRM-like v1 canoniques alimentent les formules Standard publiées, puis utilise les exemples distincts de l’Éditeur compatible Classic sans confondre les deux contrats de source.
FractalPark FRM-like v1 est le langage source canonique et typé qui sous-tend les Definitions Standard publiées. Une Definition épingle son langage, sa bibliothèque standard, son NumericProfile, ses paramètres, son état initial, son étape d’orbite répétée et son prédicat de continuation des itérations.
Classic .frm est issu de l’écosystème Fractint et reste le contrat de source utilisé par l’Éditeur autonome compatible Classic et le pipeline d’importation. FractalPark analyse et diagnostique ce dialecte séparément ; la source Classic et frmSemanticsVersion 1 ou 2 ne sont pas des écritures alternatives de FRM-like v1 canonique.
Pour les origines et l'histoire du projet au sens large, voir le site du projet Fractint.
Ce tableau de compatibilité décrit l’Éditeur compatible Classic et le parcours d’importation. Les Definitions Standard canoniques publiées utilisent l’analyseur FRM-like v1 versionné séparément, l’IR typé, le backend standard32 et l’enveloppe de sécurité fixe.
| Niveau | Signification | Périmètre vérifié |
|---|---|---|
| Pris en charge | Couvert par les tests du compilateur et utilisable sans qualification sémantique. |
|
| Adapté | Accepté avec une différence sémantique documentée ou en tant qu'extension FractalPark. |
|
| Non pris en charge | Non préservé par le compilateur actuel ou le flux de travail de fichiers ; rejeté plutôt que réécrit silencieusement. |
|
Il s’agit d’une base de compatibilité Classic testée, et non d’une revendication de compatibilité complète avec Fractint. Elle est distincte du registre de publication Standard.
Ces décomptes de capacités d’importation Classic proviennent du manifeste de compatibilité versionné : 588 entrées cibles comprennent 579 réussites strict-v2 et 9 dérogations documentées ; 117 entrées distinctes sont exclues avec des raisons stables. Ils ne comptent pas les Definitions FRM-like v1 publiées.
Paramètres : p1, p2, p3, p4, p5 · Emplacements de fonction : fn1, fn2, fn3, fn4
Manifeste de capacités v1 · Sémantique stricte v2
FRM-like v1 canonique et les exemples actuels de l’Éditeur Classic partagent une formule nommée et les notions de init, loop et bailout, mais leurs grammaires complètes sont différentes. En v1, des directives sémantiques et une section parameters typée facultative font aussi partie de la Definition.
S'exécute une fois par pixel. Définis ici la valeur d'orbite initiale et les éventuelles variables auxiliaires.
S'exécute une fois par itération. Mets à jour z et tout état nécessaire à la prochaine itération.
Renvoie la condition pour continuer l'orbite. Lorsqu'elle devient fausse, le point s'est échappé.
Les noms de sections sont structurels, pas des commentaires : en omettre un ou l'écorcher produit un diagnostic.
Les deux surfaces restent volontairement réduites. Les résumés ci-dessous présentent des concepts communs ; utilise l’action Source d’un Formula Record publié pour les directives canoniques et les paramètres typés, et les diagnostics de l’Éditeur pour la source Classic.
FractalPark ne colle jamais le texte source dans un shader. La source v1 canonique passe par son analyseur typé et son backend CPU/GLSL ; la source de l’Éditeur Classic passe par son analyseur lexical, son frontal d’entrée sélectionnée, son modèle de formule canonique et son compilateur de plugins.
Le texte exact provenant de l'éditeur, d'un collage ou d'un fichier local est l'entrée faisant autorité.
Le lexer reconnaît les noms, les nombres, les opérateurs, les marqueurs de section, les commentaires et les directives tout en conservant les emplacements source.
L'analyseur construit un arbre de formule structuré et signale les déclarations, expressions et blocs de flux de contrôle mal formés.
Le validateur vérifie les noms, les types, les sections et la sémantique prise en charge avant qu'une formule canonique soit créée.
La génération de code émet des fonctions de shader et enregistre les correspondances du GLSL généré vers la source FRM.
Une compilation réussie devient le même contrat de plugin de formule utilisé par le moteur de rendu et le système d'assemblage de shaders.
Chaque contrat de source possède son propre parcours d’implémentation. L’exécution Standard publiée utilise FRM-like v1 ; l’Éditeur autonome et les exemples actuels de formules personnalisées utilisent le parcours compatible Classic. Aucun ne bascule silencieusement vers l’autre.
Ce sont des exemples de l’Éditeur compatibles Classic, pas des Definitions FRM-like v1 canoniques. Ils progressent d’une petite formule quadratique aux paramètres et à une rétroaction avec état ; chaque bloc source vient du registre partagé de l’Éditeur et compile pendant les tests.
Leçon 1
La plus petite formule à temps d'échappement, idéale pour apprendre d'abord la structure init / boucle / sortie.
Objectif : la déclaration et la structure init / loop / bailout. Ne modifie l'exposant ou le seuil d'échappement qu'une fois cette version compilée.
StarterBrot {
init:
z = 0
loop:
z = z^2 + c
bailout:
|z| < 4
}Leçon 2
Montre les emplacements de paramètres p1 / p2 et la différence entre cabs et |z|.
Objectif : les emplacements de paramètres p1 et p2, un littéral complexe et cabs(z) comme fonction de magnitude explicite.
ParameterDrift {
init:
z = 0
loop:
z = z^2 + c + p1 * 0.15 + p2 * (0.05, -0.02)
bailout:
cabs(z) < 8
}Leçon 3
Utilise zPrev comme mémoire de rétroaction et se marie bien avec la colorisation orbitEcho pour les enveloppes d'orbite.
Objectif : zPrev comme état d'orbite précédent. La rétroaction ajoute de la mémoire sans introduire une seconde variable d'état gérée manuellement.
OrbitEcho {
init:
z = pixel
loop:
z = sqr(z) + zPrev * (0.30, -0.12) + pixel * (0.85, 0.0)
bailout:
|z| < 48
}L’Éditeur FRM autonome ouvre ces exemples compatibles Classic, vérifiés à la compilation, par ID stable. La source de formule reste dans l’onglet actuel jusqu’à ce que tu l’enregistres dans ta bibliothèque cloud et n’est jamais incorporée à l’URL. Cela n’active ni l’importation ni les writers v1 canoniques.
La compilation s'arrête au premier stade non sûr et signale des messages orientés source. Une construction rejetée n'est jamais réécrite en quelque chose qui lui ressemble simplement.
Les caractères inattendus et les identifiants non pris en charge sont signalés avec leur ligne et leur colonne.
Les sections, expressions ou blocs de flux de contrôle mal formés sont diagnostiqués avant la validation sémantique.
Les variables inconnues, les affectations invalides, les incompatibilités de types et la sémantique non prise en charge empêchent la génération de code.
Le GLSL généré conserve des correspondances qui peuvent ramener un échec de compilation du shader à l'emplacement FRM d'origine.
Lorsque tu corriges une erreur, commence par le premier message signalé : les diagnostics suivants peuvent être les conséquences du même jeton manquant ou de la même expression invalide.
Une formule que tu écris est privée jusqu'à ce que tu choisisses autrement. Il existe trois façons de la faire circuler — chacune explicite, aucune silencieuse.
Privé par défaut
Les formules vivent dans ta bibliothèque cloud, visibles uniquement par toi. Les œuvres que tu enregistres contiennent une copie de la source de la formule dans le brouillon, afin qu'elles s'ouvrent toujours telles que tu les as laissées.
Télécharger le fichier .frm
Ta formule est du texte brut. Télécharge-la depuis Mes formules à tout moment et conserve ta propre copie — aucune demande d'export, aucune attente.
Publier une œuvre, partager la source
Publier une œuvre qui utilise ta formule rend la source de la formule publique sous licence MIT : chacun peut la lire, la copier et s'en inspirer. La page communautaire affiche le nom de la formule d'après ses métadonnées et propose la source en téléchargement. Cela ne peut pas être annulé pour cette publication.
Le texte intégral de la licence MIT se trouve sur opensource.org.
Ouvre l'Explorateur pour comparer le comportement des formules intégrées, la colorisation, les transformations, l'animation et les contrôles d'export avant d'écrire une formule personnalisée.
Ouvrir l'ExplorateurUtilise l’Éditeur FRM dédié pour le flux actuel de compilation, aperçu, importation et téléchargement compatibles Classic. Il n’accepte pas la source FRM-like v1 canonique ; examine la source v1 publiée depuis un Formula Record et utilise l’action Open ou Remix de ce Record pour l’exécuter.
Le contexte historique et les détails d'implémentation sont liés séparément afin que le guide puisse distinguer la lignée Fractint du contrat de compilateur actuel de FractalPark.