P5.js-web-editor: Web Editor welcome experience

Created on 15 Jan 2019  路  14Comments  路  Source: processing/p5.js-web-editor

Nature of issue?

  • New feature request

Feature enhancement details:

I found P5.js via a Mozilla blog post: https://blog.mozilla.org/blog/2019/01/03/moss-2018-year-in-review/

In which it's described as:

The Processing Foundation maintains p5.js, an open-source JavaScript framework that makes creating visual media with code on the web accessible to anyone, especially those without traditional computer science backgrounds. p5.js enables users to quickly prototype interactive applications, data visualizations, and narrative experiences, and share them easily on the web.

So I opened https://p5js.org/ and after reading the intro clicked on the link on the bottom to try the Web Editor.

What I was expecting is maybe some tutorial but definitely something a visual way of working, but what it ended up seeing is a minimal example and not much idea what to do:

image

So what I'm proposing is creating some sort of welcome / beginner experience, be it a modal window with a short video embedded, an interactive tutorial, or a (moving) visual library of examples, but please make it not be just a blank grey background 馃檹

duplicate

Most helpful comment

I agree with all of the thoughts above! A model for this might be the Processing "Getting Started" tool created by @jaewhyun as part of last year's Google Summer of Code. For more, you can read her medium post Making the Processing Development Environment Better for Beginners.

I think a web editor "welcome experience" would be an excellent project for a future GSoC, fellowship, etc. and would love to help however I can!

All 14 comments

There are videos out there but your right a quick walk through would be nice.
Maybe a mode that had a verbose tip text that followed the pointer to describe the buttons/areas.

I totally missed the power behind the > left of sketch.js above the line numbers.
I thought i was just some kind of graphical highlighter that had no function.
Maybe it should be a different colour and have better tip text.
screenshot_7

@daaain i think this is a great idea! the web editor has mostly been used in conjunction with curricula/workshops/classes/etc. which has served this purpose. i made a video that walks through the basic features, and i know @shiffman has made a few one-off shorter videos that show off features of the editor as well.

if you have ideas/reference please add them here!

I totally second this part. I also completely missed that arrow.

I totally missed the power behind the > left of sketch.js above the line numbers.
I thought i was just some kind of graphical highlighter that had no function.
Maybe it should be a different colour and have better tip text.
screenshot_7

I agree with all of the thoughts above! A model for this might be the Processing "Getting Started" tool created by @jaewhyun as part of last year's Google Summer of Code. For more, you can read her medium post Making the Processing Development Environment Better for Beginners.

I think a web editor "welcome experience" would be an excellent project for a future GSoC, fellowship, etc. and would love to help however I can!

That seems like a great idea. I would be interested in undertaking such a project. Just a point of concern though: would the scope of this "welcome experience" be limited to the online editor only or would it also introduce the basic concepts of p5 ?

i think the focus would be the online editor, though it would be impossible to leave the basics of p5.js out. the current landing page for explaining the basic concepts of p5.js is hello.p5js.org

I like the "Making the Processing Development Environment Better for Beginners" article.
The welcome to processing model would make a very good interactive guide.
_I also think the reference tool is also very nicely formatted._

The hello.p5 would be cool as a p5 editor interactive video.
It would take less work to build than having something integrated into the p5 editor.

Having better tooltips would be the easiest thing to do in the short term, I going to try and have a go at that. But still learning GIThub and working out the process of working on an existing repo.

@hellonearthis let me know if you run into issues, and it's okay if the PR(s) are small! one fixed tooltip is better than no fixed tooltips 馃樃

It looks like the tooltips are taking their information from the SVG .<br /> There is not way to set this title when react-inlinesvg is called :(</p> <p>So removing these titles from the SVG would restore html button title text, which should be the same as the aria_lables used. I think the webpac builder uses SGVO and it could also strip titles and descriptions from the SVG but I've not looked at that and doing it manually also shows up which svg files are badly formed. </p> <p>I also noticed some other SVG issues like some of the white.svg files having their colour set to #$fff but then setting the svg opacity to 0.539999962 making it a low contrast gray. The SVG files also have junk data left over from the editors used to generate them. I guess SVGO strips that but will do some testing there.</p> <p>Working on the SVG files and adding Button title text.</p> </div> <div class="card-footer"> <div class="row"> <div class="col"> <img src="https://avatars.githubusercontent.com/u/121805?v=4&s=40" style="width:20px; height:20px;" class="mr-2 rounded float-left" alt="hellonearthis picture"> <strong>hellonearthis</strong> <span class="text-muted ml-1">on 19 Jan 2019</span> </div> <div class="col text-right"> </div> </div> </div> </div> <div class="card card-custom mb-4"> <div class="card-body pt-3 pb-3 markdown"> <p>I would like to have a go at this if no one is working on it. My suggestion would be to try something like this.<br /> <a rel="nofollow noopener" target="_blank" href="https://react-joyride.com/">link</a>. This would be a great intro to the editor. Also we can set a flag in localstorage so that this tutorial happens only the first time a user opens the editor. What do you guys think?</p> </div> <div class="card-footer"> <div class="row"> <div class="col"> <img src="https://avatars.githubusercontent.com/u/36559835?v=4&s=40" style="width:20px; height:20px;" class="mr-2 rounded float-left" alt="shakeabi picture"> <strong>shakeabi</strong> <span class="text-muted ml-1">on 10 Apr 2019</span> </div> <div class="col text-right"> </div> </div> </div> </div> <div class="card card-custom mb-4"> <div class="card-body pt-3 pb-3 markdown"> <p><strong>@shakeabi</strong> i appreciate your enthusiasm for working on this, but i think before thinking about technically how to implement something like this, we need to think about this from a design perspective. </p> <p>also, i made a video that introduces the basic concepts of the editor鈥攁s a bare minimum, we could link to that.</p> </div> <div class="card-footer"> <div class="row"> <div class="col"> <img src="https://avatars.githubusercontent.com/u/6063380?v=4&s=40" style="width:20px; height:20px;" class="mr-2 rounded float-left" alt="catarak picture"> <strong>catarak</strong> <span class="text-muted ml-1">on 11 Apr 2019</span> </div> <div class="col text-right"> </div> </div> </div> </div> <div class="card card-custom mb-4"> <div class="card-body pt-3 pb-3 markdown"> <p><strong>@catarak</strong> are there any existing designs for this? Can I propose some?</p> </div> <div class="card-footer"> <div class="row"> <div class="col"> <img src="https://avatars.githubusercontent.com/u/36559835?v=4&s=40" style="width:20px; height:20px;" class="mr-2 rounded float-left" alt="shakeabi picture"> <strong>shakeabi</strong> <span class="text-muted ml-1">on 16 Apr 2019</span> </div> <div class="col text-right"> </div> </div> </div> </div> <div class="card card-custom mb-4"> <div class="card-body pt-3 pb-3 markdown"> <p>there are not yet any designs for this鈥攆eel free to add ideas!</p> </div> <div class="card-footer"> <div class="row"> <div class="col"> <img src="https://avatars.githubusercontent.com/u/6063380?v=4&s=40" style="width:20px; height:20px;" class="mr-2 rounded float-left" alt="catarak picture"> <strong>catarak</strong> <span class="text-muted ml-1">on 17 Apr 2019</span> </div> <div class="col text-right"> </div> </div> </div> </div> <div class="card card-custom mb-4"> <div class="card-body pt-3 pb-3 markdown"> <p>I'm going to roll this issue into #748. Still very much would like to brainstorm ideas for a p5.js Editor walkthrough of all of the features, ranging from recording a new walkthrough video to creating gifs to adding a JS library.</p> </div> <div class="card-footer"> <div class="row"> <div class="col"> <img src="https://avatars.githubusercontent.com/u/6063380?v=4&s=40" style="width:20px; height:20px;" class="mr-2 rounded float-left" alt="catarak picture"> <strong>catarak</strong> <span class="text-muted ml-1">on 10 Feb 2021</span> </div> <div class="col text-right"> </div> </div> </div> </div> </div> <div class="col-12"> <div class="card card-custom mb-4"> <div class="card-body pt-3 pb-3 markdown text-center helpful"> <div class="title">Was this page helpful?</div> <div class="mt-1" onMouseLeave="rating(399561649, 0);"> <i class="fas fa-star inactive" id="star-1" onMouseOver="rating(399561649, 1);" onclick="rate(399561649, 1);"></i> <i class="fas fa-star inactive" id="star-2" onMouseOver="rating(399561649, 2);" onclick="rate(399561649, 2);"></i> <i class="fas fa-star inactive" id="star-3" onMouseOver="rating(399561649, 3);" onclick="rate(399561649, 3);"></i> <i class="fas fa-star inactive" id="star-4" onMouseOver="rating(399561649, 4);" onclick="rate(399561649, 4);"></i> <i class="fas fa-star inactive" id="star-5" onMouseOver="rating(399561649, 5);" onclick="rate(399561649, 5);"></i> </div> <div class="description text-small"><span id="rating-val">0</span> / 5 - <span id="rating-count">0</span> ratings</div> </div> </div> <div class="mb-4"> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3835332123789605" data-ad-slot="3452512275" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> </div> </div> <div class="col-12 col-lg-4"> <div id="ph-above-related"></div> <div class="card card-custom issue-box"> <div class="card-body pt-3 pb-5"> <h2 class="mb-4">Related issues</h2> <div> <strong> <a href="/p5-js-web-editor/335649525/can-t-upload-files-from-a-cloned-p5-js-repo">Can't upload files from a cloned p5.js repo</a> </strong> </div> <div class="text-muted text-small mt-2"> <img src="https://avatars.githubusercontent.com/u/3698659?v=4&s=40" style="width:20px; height:20px;" class="mr-2 rounded float-left" alt="aferriss picture"> <strong class="pr-1" dir="ltr">aferriss</strong>  路  <span class="px-1" dir="ltr">5</span><span>Comments</span> </div> <hr /> <div> <strong> <a href="/p5-js-web-editor/301839730/console-errors-highlight-wrong-file">Console errors highlight wrong file</a> </strong> </div> <div class="text-muted text-small mt-2"> <img src="https://avatars.githubusercontent.com/u/6063380?v=4&s=40" style="width:20px; height:20px;" class="mr-2 rounded float-left" alt="catarak picture"> <strong class="pr-1" dir="ltr">catarak</strong>  路  <span class="px-1" dir="ltr">5</span><span>Comments</span> </div> <hr /> <div> <strong> <a href="/p5-js-web-editor/340848629/feature-enhancement-improve-examples-ui-long-list-difficult">Feature enhancement: Improve Examples UI - Long list difficult for students to scroll</a> </strong> </div> <div class="text-muted text-small mt-2"> <img src="https://avatars.githubusercontent.com/u/2680980?v=4&s=40" style="width:20px; height:20px;" class="mr-2 rounded float-left" alt="willingc picture"> <strong class="pr-1" dir="ltr">willingc</strong>  路  <span class="px-1" dir="ltr">5</span><span>Comments</span> </div> <hr /> <div> <strong> <a href="/p5-js-web-editor/406139047/p5-example-typography-word-not-working">P5 example "Typography: word" not working </a> </strong> </div> <div class="text-muted text-small mt-2"> <img src="https://avatars.githubusercontent.com/u/7013117?v=4&s=40" style="width:20px; height:20px;" class="mr-2 rounded float-left" alt="maartenwijntjes picture"> <strong class="pr-1" dir="ltr">maartenwijntjes</strong>  路  <span class="px-1" dir="ltr">3</span><span>Comments</span> </div> <hr /> <div> <strong> <a href="/p5-js-web-editor/585370902/increase-font-size-for-the-invalid-file-type-message">Increase Font Size for the Invalid File type message </a> </strong> </div> <div class="text-muted text-small mt-2"> <img src="https://avatars.githubusercontent.com/u/53407417?v=4&s=40" style="width:20px; height:20px;" class="mr-2 rounded float-left" alt="aldrinjenson picture"> <strong class="pr-1" dir="ltr">aldrinjenson</strong>  路  <span class="px-1" dir="ltr">4</span><span>Comments</span> </div> </div> </div> <div class="sticky-top pt-4"> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3835332123789605" data-ad-slot="3919948963" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> <div id="ph-below-related-2" class="mt-4"> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3835332123789605" data-ad-slot="3919948963" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> </div> <div class="col-12 col-lg-4"> </div> </div> <div class="skyscraper-container"> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-3835332123789605" data-ad-slot="7879185320" data-ad-format="vertical" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="mt-5 spacer"></div> <footer class="mt-5 pb-2 py-4 text-center mt-auto"> <div class="container"> <a class="navbar-brand logo mr-5" href="/"> <img src="/assets/img/logo.svg" width="40" height="40" alt="bleepingcoder logo"> bleeping<strong>coder</strong> </a> <div class="mt-4"> bleepingcoder.com uses publicly licensed GitHub information to provide developers around the world with solutions to their problems. We are not affiliated with GitHub, Inc. or with any developers who use GitHub for their projects. We do not host any of the videos or images on our servers. All rights belong to their respective owners. </div> <div> Source for this page: <a href="https://www.github.com/processing/p5.js-web-editor/issues/806" rel="nofollow noreferrer" target="_blank">Source</a> </div> </div> <hr class="mb-5 mt-5"> <div class="container"> <div class="row"> <div class="col-sm-4 col-lg mb-sm-0 mb-5"> <strong>Popular programming languages</strong> <ul class="list-unstyled mb-0 mt-2"> <li class="mb-2"> <a href="/python" dir="ltr">Python</a> </li> <li class="mb-2"> <a href="/javascript" dir="ltr">JavaScript</a> </li> <li class="mb-2"> <a href="/typescript" dir="ltr">TypeScript</a> </li> <li class="mb-2"> <a href="/cpp" dir="ltr">C++</a> </li> <li class="mb-2"> <a href="/csharp" dir="ltr">C#</a> </li> </ul> </div> <div class="col-sm-4 col-lg mb-sm-0 mb-5"> <strong>Popular GitHub projects</strong> <ul class="list-unstyled mb-0 mt-2"> <li class="mb-2"> <a href="/microsoft/vscode" dir="ltr">vscode</a> </li> <li class="mb-2"> <a href="/numpy/numpy" dir="ltr">numpy</a> </li> <li class="mb-2"> <a href="/ant-design/ant-design" dir="ltr">ant-design</a> </li> <li class="mb-2"> <a href="/mui-org/material-ui" dir="ltr">material-ui</a> </li> <li class="mb-2"> <a href="/vercel/next-js" dir="ltr">next.js</a> </li> </ul> </div> <div class="col-sm-4 col-lg mb-0"> <strong>More GitHub projects</strong> <ul class="list-unstyled mb-0 mt-2"> <li class="mb-2"> <a href="/rust-lang/rust" dir="ltr">rust</a> </li> <li class="mb-2"> <a href="/moment/moment" dir="ltr">moment</a> </li> <li class="mb-2"> <a href="/yarnpkg/yarn" dir="ltr">yarn</a> </li> <li class="mb-2"> <a href="/mozilla/pdf-js" dir="ltr">pdf.js</a> </li> <li class="mb-2"> <a href="/JuliaLang/julia" dir="ltr">julia</a> </li> </ul> </div> </div> </div> <hr class="mb-5 mt-5"> <div class="container text-muted"> 漏 2026 bleepingcoder.com - <a href="/bleeps" rel="nofollow">Contact</a><br /> By using our site, you acknowledge that you have read and understand our <a href="/cookies" rel="nofollow">Cookie Policy</a> and <a href="/privacy" rel="nofollow">Privacy Policy</a>. </div> </footer> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha256-4+XzXVhsDmqanXGHaHvgh1gMQKX40OUvDEBTu8JcmNs=" crossorigin="anonymous"></script> <script async src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script> <!--<script defer type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5fb2db66acbd74b2"></script>--> <script type="text/javascript" src="/assets/js/main.js"></script> <script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script></body> </html>