メインコンテンツ
結果:
Have you marveled at the breathtaking, natural-looking animations crafted by the creative minds in the Flipbook Mini Hack contest? Think of @Tim, @Jenny Bosten, and @Zhaoxu Liu / slandarer- their work is nothing short of extraordinary.
So, what's their secret? Adam Danz, a developer in the MATLAB Graphics and Charting team and a top community contributor, has graciously unveiled the mysteries in his latest blog post - "Creating natural textures with power-law noise: clouds, terrains, and more." The post offers simple, step-by-step instructions and code snippets, empowering you to grasp these enchanting techniques effortlessly.
Check it out and we hope it sparks your creativity and serves as a wellspring of inspiration. With only 3 days remaining before the contest draws to a close, it's time to dive into the code and let your imagination soar!
Write a matlab script that will print the odd numbers, 1 through 20, in reverse.
I cannot figure out how to do this correctly, please help.
In Week 3, we reached the 400-animations milestone! Let’s work together to achieve the 500-animations goal!
During the last week of the contest, we strongly encourage you to inspire your colleagues, classmates, or friends to vote. Voters will also have the opportunity to win a MATLAB T-shirt.
Mini Hack Winners - Week 3
Math, Physics, or Science explanation:
Most creative remix:
40:
Math is beautiful:
Mashup (Combined themes):
Nature:
Holidays:
Congratulations, winners!
In week 4, we’d love to see more entries in the following categories:
- Holidays:
- Seasons:
- Abstract:
- Mashup (mixed categories)
A gentle reminder that you have a direct impact on the next generation of animation tools in MATLAB! Don’t forget to share your thoughts and ideas with us.
i've finished writing the code for my ~masterpiece~ and it doesn't run on the contest new entry page. it runs on matlab on my desktop and in the matlab live editor in my browser, but not where i really need it to. usually it'll draw the first frame the first time i run the code in a new window, but not any subsequent times. whether i hit "run" or "create animation", the screen grays out as it's supposed to, but then returns to normal without generating the first frame or animation.
i'm not getting a timeout warning or any error messages. i timed the code on my laptop and it takes about 100ish seconds to run and generate the animation the first time i run it before clearing everything from my workspace (and then it takes about twice as long each subsequent time, which makes me a bit nervous. can't figure out why this is the case at all!), which is well within the 255 second limit for the contest. as far as i know, the most computationally expensive function i'm using is patch(). i'm pretty close to the character limit, but i don't know if that's part of the problem.
i tried vectorizing some of the code instead of using for loops, which made the code run slightly slower. i tried using a nested function instead of using drawframe() and an auxiliary function, but that didn't help. i tried clearing all variables except f at the end of drawframe() to no avail. i tried using the close command at the start of drawframe(), with similar success. i updated chrome, closed a bunch of windows, tried safari, used my sister's laptop, all with no luck.
has anyone else had this or a similar problem? any advice?
thanks!
Just in two weeks, we already have 300 entries and 2,000 votes! We are so impressed by your creative styles, artistic talents, and ingenious programming techniques.
Now, it’s time to announce the weekly winners!
Mini Hack Winners - Week 2
Time & Space:
Trees:
Cartoon:
Symbolism:
Realism:
Fractal:
Multi-Entry Stories:
Explanatory:
Light:
MATtropolis:
Congratulations! Each of you won your choice of a T-shirt, a hat, or a coffee mug. We will contact you after the contest ends.
New categories for Week 3!
- 40: MathWorks will celebrate its 40th Anniversary in 2024. You will have opportunities to win special prizes!
- Most creative remix
Categories we’d love to see more entries in
- Multi-Entry Stories (e.g. Jr’s Matzilla series)
- MATropolis
- Math/Physics Explanation
Finally, just a reminder that you have a direct impact on the next generation of animation tools in MATLAB! Don’t forget to share your thoughts and ideas with us.
Dear contest participants,
Happy Friday! I am thrilled to share some exciting news with you. Cleve Moler, the father of MATLAB, has just published a captivating blog post dedicated to our outstanding Flipbook Mini Hack contest!
In his blog post, Cleve expresses his genuine admiration for the multitude of creative styles, artistic talents, and ingenious programming techniques that have been showcased throughout the contest. What's even more remarkable is that he handpicked some of his personal favorites! You don't want to miss this opportunity to see what Cleve has to say.
But that's not all! Your exceptional animations have sparked immense interest among the MathWorks teams. This means you have a direct impact on the next generation of animation tools in MATLAB! We value your thoughts and ideas, so please don't hesitate to share them with us.
Let's keep up the phenomenal work in the remaining two weeks, and together, we'll continue to push the boundaries of creativity and innovation.
Wishing you all an incredible weekend ahead!
Enthusiastically yours,
Chen
I think it would be a really great feature to be able to add an Alpha property to the basic "Line" class in MATLAB plots. I know that I have previously had to resort to using Patch to be able to plot semitransparent lines, but there are also so many other functions that rely on the "Line" class.
For example, if you want to make a scatter plot from a table with things specified into groups, you can use ScatterHistogram or gscatter but since gscatter uses the Line class, you can't adjust the marker transparency. So if you don't want the histograms, you are stuck with manually separating it and using scatter with hold on.
I saw this post on Answers.
I was impressed at the capability of the AI, as I have been at other times when I posed a question to it, at least some of the time. So much so that I wondered...
What if the AI were automatically applied to EVERY question on Answers? Would that be a good or bad thing? For example, suppose the AI automatically offers an answer to every question as soon as it gets posted? Of course, users would still be allowed to post their own, possibly better answers. But would it tend to disincentivise individuals from ansering questions?
Perhaps as bad, would it push Answers into the mode of a homework solving forum? Since if every homework question gets a possibly pretty good automatic AI generated solution, then every student will just post all HW questions, and the forum would quickly become overwhelmed.
I suppose one idea could be to set up the AI to post an answer to all un-answered questions that are at least one month old. Then students would not gain by posting their homework.
In just one week, we have about 200 amazing animations! We see many creative and compelling animations and more importantly a lot of FUN!
Now, let the voting begin! Vote on the animations you love. Also, share them with your friends, classmates, or colleagues. Show the world the beauty of mathematics!
Mini Hack Winners - Week 1
You probably can imagine how hard it is to pick the winners, given so many awesome entries there are! We came up with several categories:
Landscape:
Trees:
Illusion:
Cartoon:
MATropolis:
Geometry:
Congratulations to the winners! Each of you won your choice of a T-shirt, a hat, or a coffee mug. We will contact you after the contest ends.
Finally, we encourage all of you to share your experiences, thoughts, and feedback in our new contest discussions channel!
Loving all the animations I'm seeing so far and feeling so inspired and impressed by what y'all are sharing. Thanks for loading me up with new topics to learn about!
Hi Guys
Posting this based on a thought I had, so I don't really ahve any code however I would like to know if the thought process is correct and/or relatively accurate.
Consider a simple spring mass system which only allows compression on the spring however when there is tension the mass should move without the effect of the spring distrupting it, thus the mass is just thrown vertically upwards.
The idea which I came up with for such a system is to have two sets of dfferential equations, one which represents the spring system and another which presents a mass in motion without the effects of the spring.
Please refer to the below basic outline of the code which I am proposing. I believe that this may produce relatively decent results. The code essentially checks if there is tension in the system if there is it then takes the last values from the spring mass differential equation and uses it as initial conditions for the differential equation with the mass moving wothout the effects of the spring, this process works in reverse also. The error which would exist is that the initial conditions applied to the system would include effects of the spring. Would there be a better way to code such behaviour?
function xp = statespace(t,x,f,c,k,m)
if (k*x(1)) positive #implying tension
**Use last time step as initial conditions**
**differential equation of a mass moving""
end
if x(1) negative #implying that the mass in now moving down therefore compression in spring
**Use last time step as initial conditions**
**differential equation for a spring mass system**
end
end
The Flipbook contest is currently in full swing! It's been truly inspiring to see the incredible artwork you've all created using MATLAB! Checkout the gallery page if you haven't already.
We have some exciting news for our contestants today! In order to allow for more complex and unique creations, we've increased the MATLAB Evaluation timeout limit from 55 to 235 seconds!! So, don't hold back! Feel free to throw in those extra intricate lines of code without worrying about timeouts.
To all those already participating, we commend your efforts and encourage you to keep pushing your boundaries. And remember, there's always room for more. So, why not invite your friends and fellow MATLAB enthusiasts to join in the fun?
We also encourage everyone to engage in the contest discussions channel. Share your experiences, insights, and feedback about this contest. Your contributions enrich our community and help us improve future contests.
Looking forward to seeing more and more entries in coming weeks!
We reached the 100 animations milestone in less than 3 days! We are thrilled to see so many creative entries and talented members learning from each other.
Note that this contest is not just for experts. People with all skill levels can participate, improve their MATLAB skills, and have fun!
We have created new resources and tips for you to get started.
- Contest introductory video. The 3-minute video provides you with a quick introduction to how the contest works and how to create a simple animation.
- Animations blog post. The post demonstrates some coding techniques that can make your animations easier.
- AI Chat Playground. This is a new community app we just released. You can leverage the Generative AI tool to write initial draft MATLAB code or modify existing one.
- Get ideas from previous Mini Hack contests. There is a large gallery of amazing images, which provide you with ideas and code to start with.
- Remix is highly encouraged. Learning from others is the most effective way to learn. Make some SMALL changes and see what it would look like.
We look forward to seeing more of you joining us and having more fun!
Seeing a colleague make this mistake (one I've had to fix multiple times in other's work too) makes me want to ask the community: would you like the awgn() function/blocks to give the option for creating a SNR at the bandwidth of the signal? Your typical flow is something like this:
- Create a signal, usually at some nominal upsampling factor (e.g., 4) such that it's now nicely over sampled, especially if you're using a RRC or similar pulse shaping filter.
- Potentially add a frequency offset (which might make the sample frequency even higher)
- Add AWGN channel model for a desired SNR
- Put this into your detector/receiver model
The problem is, when someone says, "I'm detecting XYZ at foo SNR," it should not magically improve as a function of the oversample. The problem isn't that awgn() generates white noise, that's what it's supposed to do and the typical receiver has noise across the entire band. The problem is that SNR is most properly defined as the signal power over the noise power spectral density times the signal's noise equivalent bandwidth. Now I looked and there's no handy function for computing NEBW for an input signal (there's just a function for assessing analysis windows). In practice it can get a bit tricky. The occupied bandwidth or HPBW are often close enough to the NEBW, we're usually not haggling over hundredths of a dB. So, in my not so humble opinion, the "measured" flag for awgn() should give an option for bandwidth matching or at least document the behavior better in the help page. All too often I'm seeing 3-6 (or worse) dB errors because people aren't taking the signal's bandwidth into account.
Unlike last year's contest, there are some new technologies this year that might offer some advantages. Namely generative AI's like ChatGPT, Bard, etc. Not to be excluded, MathWorks just launched the AI Chat Playground :)
The MATLAB AI Chat Playground is open to everyone!
Check it out here on the community: https://www.mathworks.com/matlabcentral/playground
Participants across all skill levels are welcome to join! You can participate by creating a new animation or remixing an existing one with up to 2,000 characters of MATLAB code.
Contest Tips:
- Before you start, we highly recommend you check out the two examples - Bouncing and Spinning - to understand how the contest works.
- Share your thoughts, ask questions, or connect with others in our contest discussion channel.
Note that the first week (Nov. 6th, 2023, ~ Nov. 12th, 2023) is for creating entries only. Voting does not begin until the second week.
We look forward to seeing your creative work. Let the contest begin!