-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enhancement proposal for creation of non-catalogue, freestyle figures, compliant with the Aresti-system #283
Comments
Hi Dirk, This is an excellent proposal. Like you, I have frequently received requests for non-Aresti figures. First, I have made steps to implement such a system before this proposal. It's still in a very basic development phase which I will describe later. I agree that for such a system to be widely useable, a user-friendly figure designer is essential. This is a big project that will take significant time and in which decisions will have to be made, such as:
Also, the current system does not calculate K factors, but I agree that automatic calculation according the Aresti rules would be best. Now, for a description of the implementation as is currently available at https://openaero.net/devel.
$catalogueNr(powerK:gliderK)drawing catalogueNr (non-compulsory) I'm not at all sure if this is the best way, or if I will change it radically in the future. Your feedback is very welcome! Figures and sequences built this way in the devel version will not load correctly in the stable version of OpenAero. It may be some time before I consider this stable enough for full release. So in general, the good news is that you can now make any figure in the devel version. Try the following sequence text:
|
Hi Ringo, thank you very much for your thorough response. I'm really happy to see us sharing similar thoughts, once more :) and I'm quite surprised for two reasons:
But before attempting to implement any substantial code changes that likely affect OpenAero's backbone, I think it's worth to do, what engineers should always do first: Let's agree on mandatory conventions, the scope of and the requirements to this change. Part of that will already address some of the questions. Here's my proposal. Add, correct or reject per your descretion: Convention No 1We generally destinguish beyond OpenAero:
In order to refer more easily to them in subsequent discussions, we might want to use "primary", "secondary" and "tertiary" base-figures as better pronouncable equivalent terms. However, for rolling out this entire idea and its implementation, I think it is best way forward to concern solely the secondary base figures. It is easy to imagine that the tertiary figures will cause a lot of extra-headache, should their implementation be attempted. Although I would really like to see some knife-edge-elements in OpenAero one day, I believe it is not time for them, yet. Consider just this example: So, Convention No 2As mentioned in my initial post, here, Non-Catalogue Figures (secondary and tertiary base figures) are by convention not to be assigned to any kind of catalogue number, simply because it does not fulfill any purpose. Outcome of this change should be that any secondary base figure should be created through that new interface and operated, using the queue and the free (un)known designer, but not by the figure selection as all the other catalogue figures. Any figure can be named and labelled already without a catalogue number, using particular letters or other arbitrary names. The only reason, why OpenAero has implemented the catalogue numbers for the primary base figures, is to allow rule-assignment/application, rule-checking and hard-coded-K-factor-checking - hence three objectives that do not apply to freestyle figures with automatically calculated K-factors. Beyond that I currently do not see any user-demand or contest scenario that asks or prescribes hard-coded K-factors on freestyle figures. Convention No 3I do not see any reason why still to hard-code the K-factors for freestyle-figures, which is prone to errors. Calculating it from the drawing instruction should definitely be the ultimate goal. I also cannot see any user demand for custom K-factors at the moment, do you? Let me know, if you agree or where you disagree with these conventions. I would be intrigued to see, how I can assist you in the implementation. What is your idea of the user interface so far? Do you imagine something totally new, like you did with the free (un)known-designer or do you perhaps rather think of amending or "recycling" the figure editor? So far I just imagined that it needs:
At a later step some further controls may ease the creation, i.e. an automatic inverse/reverse-the-figure-checkboxes. Best regards, |
Hi all,
to bring everybody onto the same page, I've spent an afternoon or two to explain some things in quite some detail here, before my actual proposal is rolled out, so please do me the honor and read it carefully. Please let me know about any misconception or mistake, if I have made one and if any question remains.
User Demand and Historical Background
In recent years, I have received recurring questions on non-catalogue or freestyle-figures, like:
Some of these figures even included continous line-segments in a knife-edge attitude. Without further explanation I want to make clear that such knife-edge attitudes are explicitly not part or subject of this proposal, although worth another discussion.
The motivation for non-catalogue figures is surely as various and legit, as the aerobatic disciplines, contests and displays are various.
However, those, who have understood José Aresti´s SYSTEM down to the detail, will likely have concluded that at his time the Aresti-Catalogue was simply a means of choice and the best means for distribution - a handy outcome or dilevery of applying his system hundreds of times - each time for every base-figure - with the intension to simplify competitors' lifes, when proposing or selecting certain figures, compliant with the system, as this system ensured a systematic, reproducable and therefore fair calculation of K-factors, based on the figure's extent.
José Aresti has emphasized that his catalogue is not final, in fact will likely never be finalized and is hence subjected to continued enhancement or changes, as the system allows its application for many more combinations of loops and/or lines than what has been captured so far in the catalogue.
Current Situation
Indeed, every definition in OpenAero's figureXX.js-files works analog in a wide degree to the Aresti-System, although the base-figure-K is not automatically calculated (as foreseen by the Aresti-System) out of the figure-description, but calculated manually and assigned to it "hard-coded", which has been actively decided in order to let OpenAero be consistent with the catalogue and the sporting codes, which in return are not consistent with the Aresti-System for a few couple of base-figures. These few inconsistencies likely originate from copying or revision mistakes, typo's or similar that occured long back in the past.
A rather easy example for such a base-figure definition in these files is following code-line:
+_c^+ 8.5.6.1(10) ~~~''_c'''_'~~d~
It shows the assignment or bijective association of a certain base-figure's placeholder
+_c^+
against its catalogue-number8.5.6.1
, K-factor(10)
and another regular expression~~~''_c'''_'~~d~
, used by OpenAero as a 'drawing instruction'. Thus, the base-figure's placeholder, callable by the user via the sequence-string, poses a short-cut or abbreviation for the much longer drawing instruction, which it-self is not directly callable through the user's interface - SO FAR.Syntax of the base-figure placeholder
+_c^+
is one particular out of further possible placeholders for a particular base-figure ("half-cuban eight") of a figure-family, here particularly:+
starting in up-right attitude_
an even number of half-roll-elements is permissible on the first roll-element - here before the arcc
the base-figure letter to be called by the user in the sequence-string to access this association for a half cuban eight^
an odd number of half-roll-elements is permissible on the second roll-element - here after the arc+
ending in up-right attitudeGenerally, there may be further symbols used, to specify the permissible roles or spins:
&
any kind and extent of roll is allowed (i.e. quater rolls, n/8 rolls)$
any kind and extent of rolls or spins are allowedSyntax of the drawing instruction
It is further crucial to understand that the drawing instruction does not have the same syntax as the base-figure's placeholder!
In particular the letters do have a different meaning. Here, the letters describe consequetively the changes in line direction throughout the figure always w.r.t. the current direction and attitude:
d
orD
: 45°-arc, resp. 1/8-loopv
orV
: 90°-arc, resp. 2/8-loopz
orZ
: 135°-arc, resp. 3/8-loopm
orM
: 180°-arc, resp. 4/8-loop; can be ammended with/
to create the arc with half of the normal radius (as used in humpty bumps)c
orC
: 225°-arc, resp. 5/8-loopp
orP
: 270°-arc, resp. 6/8-loopr
orR
: 315°-arc, resp. 7/8-loopo
orO
: 360°-arc, resp. full loopLower case letters are "pitch-up"- or positive arc changes - or pull-arcs. Upper case letters mean then the opposite direction - "pitch down" or push-arcs. This is evident from comparison with another code-line:
-_c^- 8.5.6.2(14) ~~~''_C'''_'~~D~
is the same figure, but flown the "negative way" - with inverted entry and exit attitudes, it has now to use upper case letters in the drawing instruction, as the arcs have become push-arcs.The symbols
~
and'
are used to extend lines (likewise in the sequence string, see OpenAero language). The symbol_
is here a placeholder for ANY roll-element, irrespective of even or odd permissible numbers of half-roll-elements. If that symbol is written immediately before or after a letter for a direction change, there will be no straight line segment in between that arc and the roll-symbol. The last crucial information on this code line is to understand that the number and order of roll-element symbols in the base-figure placeholder (_
,^
) must match the number of roll-element placeholders in the drawing instructions (_
) as they are 'mapped' onto each other. If the numbers don't match or if they are not in the correct order, the base-figure is ill-defined.For the previous example
~~~''_c'''_'~~d~
it means that from starting position (on horizontal line - by convention):~~~''
the current line is extended by 3 plus 2/4 units, hence yielding a rather long horizontal line segment_
first roll-element placeholder (irrespective of even or odd permissible number of half-rolls)c
the direction is changed by 225° by positive arc (pitch-up), hence a positive 5/8-loop into diagonal down line'''
extends the diagonal down line by 3/4 of a length unit_
second roll-element placeholder, again irrespective of even or odd - however, the mapping to the base-figure's placeholder ensures that just odd numbers will be permissible'~~
extends the line segment after the second roll-element placeholder by 2 plus 1/4 length unitsd
the direction is changed 45° pitch-up (which indirectly mandates also the second roll-element to be of an odd permissible number, otherwise the now current position was on a vertical down line)~
the line (before figure finish) is extended by 1 length unitThe figure ends then on horizontal line by convention.
Proposal
Since
it appears to me as a much better idea and way forward, if OpenAero withdraws from updating figureXX.js-files for the purpose of having the latest fancy freestyle figures implemented and, if instead OpenAero would enable the users to define their non-catalogue / freestyle-figures them-selves, by means of:
It is imperative that all required information to reproduce such a user-defined freestyle figure is embedded in or to be derived out of the sequence-string. The idea is to have a sequence string like the following to be understood as "half-roll split-s, humpty-bump, user-defined fancy figure with one half roll on first roll position and 4/4-roll on second roll position, hammerhead:
2a b 2user44{_user defined drawing instruction_} h
where
2user44
is the figure with 'user' as base-figure identifier that calls unlike other base-figure letters directly the drawing instruction in the parenthesis, provided after it. If 'user' causes problems, use another feasible descriptor instead. This definition does not contain the catalogue number, since it is irrelevant, and the K-Factor, since it could be automatically calculated.Once, such a definition is successfully accomplished, any user and any contest director can save such figures to the queue or anywhere else, and operate them likewise to every other catalogue figure.
Thank you for your attention and best regards,
Dirk
The text was updated successfully, but these errors were encountered: