"Play around with display fontSize, fontStyle, floating letter, organic locations... -> I thought i can play around with the visual output but I don't know how to do this in the Observable window..." -- if you render your output as html, then you can control all these thing via CSS
Hi Daniel!
Yes. It did actually, but I guess because its' somehow not working very effectively and the variation wasn't obvious enough for ppl to notice.🙈
So what I did in this piece is to, first of all, deleted the 3rd part of the original writing piece(the "Sugar for Beauty" one, which I don't think is working too well) and had them embedded into other two pieces (so now only "Tree for Life" and "Wine for Shadow" left). And these two contents themselves have changed a lot as well.
As for the sliders part, my original idea was that based on the user inputs of three sliders: "drinks"(2 options), "guests"(2 options), and "tablewares"(3 options), in total 2*2*3=12 variations(so you see 12 "else if" in the function "genpoem()" part below)(but actually times 2, 24 variations cuz there are two poems), but because 12 variations of grammars will further lead to a loooots of writing so I somehow categorized them into 3 results only (it's a bit tricky I know🙈).
So in the grammar rules, you may notice that there are "intro, introN, introNN", "verbb, verbbN, verbbNN", "takeLeave, takeLeaveN, takeLeaveNN",... etc.
Everything with further "N" and "NN" iterations means that the variations during the generating process will be expanded to 3 times more (N stands for New😅) so if you use command + F, you may actually find each of them always appears 4 times in the function. (because I divide 12 with 3 equal 4).
So this is how the function works, from the three inputs:
Drink = (0 | 2) // I’m sorry idk why here I edited this one as variable “combos” afterward, must because I was dozing off at the moment, but yeah😅
Guest = (0 | 2)
Tablewares = (0 | 1 | 2)
So if the three inputs come in:
(0,0,0) or (0,0,1) or (0,2,0) or (2,0,0)
(Which I consider the total scores are between 0~2)
The output of these will be generated by the system where “no-N“ elements will be selected
Else if they come in:
(0,2,1) or (2,0,1) or (0,0,2) or (2,2,0)
(Which I consider the total scores are between 2~4)
The output of these will be generated by the system where “one-N“ elements will be selected
Else if they come in:
(2,2,2) or (2,2,1) or (0,2,2) or (2,0,2)
(Which I consider the total scores are between 4~6)
The output of these will be generated by the system where “two-N“ elements will be selected
So I did use a trick here to prevent me from having to write 12 variations, but instead, I categorized them into 3.
So the reason behind is that I thought of some concepts similar to Twine, which is: based on user input, the results might be different according to various steps/choices that they have been through, but the messages are stored/calculated in a way that they won’t realised immediately (?
So what I thought is that based on what they chose from drinks/guests/tablewares, further create certain kind of emotion/feeling that influence the output (in my case I did make the variations among the “no-N”, “one-N”, and “two-N” parts different based on the level of emotion.)
The more tendency of users input closer to the right, the more likely they get “more-N”, and further generate texts with certain parts that have STRONGER emotions.
-> In “Wine for Shadow”, the feeling of being oppressed/betrayed/terrified is stronger
-> In “Tree for Life”, the feeling of being confident/calm/free from control is stronger
But also, I understand what you meant, the level of variations of how users receive immediate outcome/feedbacks isn’t obvious enough to notice (also because the poem itself is jumping between “Wine for Shadow” and “Tree for Life” so it makes it harder to notice the differences (I’m sorry 🙈 you may change the mutable page == 0/1/2 part in the if-else statement below to see only one of the poems showing at once to see the outcomes)
But yeah, I guess I’ll try to find a way to make it less abstract/vague(?
But also because I was somehow running out of ideas for what else variations I may add in observable for the writing (that wasn’t too hard technically for me to try out😅) That’s why I chose to use Twine + RiTa on the next iteration of my writing instead of observable again.