forkphorus / forkphorus Goto Github PK
View Code? Open in Web Editor NEWJavaScript compiler for Scratch 3, 2, and 1 projects.
Home Page: https://forkphorus.github.io
License: MIT License
JavaScript compiler for Scratch 3, 2, and 1 projects.
Home Page: https://forkphorus.github.io
License: MIT License
Please describe the issue below. Please be specific, descriptions like "it doesnt work" are not helpful.
Project URL: https://scratch.mit.edu/projects/247070325/
Project ID: 247070325
https://forkphorus.github.io/#247070325
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
WebGL is faster than a 2d canvas and allows accurately applying filters. Scratch 3 and sulfurous use WebGL so forkphorus is overdue for this.
A 2d canvas should still be used as a fallback.
The P.renderer.ProjectRenderer interface is sufficiently abstract that this should be possible without affecting core code.
Describe what you were doing to cause this error:
Happened again. Tried to load this project: https://scratch.mit.edu/projects/78096056/
Dunno what's going on. I'm on a school chromebook so that might have something to do with it but idk. I've sent a bug report b4 and i got ur response, it works fine on my main PC but like i said idk
Project URL: https://scratch.mit.edu/projects/78096056/
Project ID: 78096056
https://forkphorus.github.io/#78096056
Mozilla/5.0 (X11; CrOS x86_64 11895.118.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.159 Safari/537.36
[object ProgressEvent]
Please describe what you were doing to cause this error:
Project URL: https://scratch.mit.edu/projects/247070325/
Project ID: 247070325
https://garbomuffin.github.io/phosphorus/#247070325
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
Message: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The canvas has been tainted by cross-origin data.
Stack:
Error: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The canvas has been tainted by cross-origin data.
at Sprite.touching (https://garbomuffin.github.io/phosphorus/phosphorus.js:1269:44)
at eval (eval at scopedEval (https://garbomuffin.github.io/phosphorus/phosphorus.js:5128:12), <anonymous>:43:7)
at Stage.P.runtime.P.core.Stage.step (https://garbomuffin.github.io/phosphorus/phosphorus.js:4924:13)
Describe the issue below. Please be specific, things like "it doesn't work" are not helpful.
Stars render poorly. Fixed by disabling keepInView()
Project URL: https://scratch.mit.edu/projects/16205373/
Project ID: 16205373
http://forkphorus.local:8000/#16205373
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0
Describe the issue:
Project URL: https://scratch.mit.edu/projects/315925470
Project ID: 315925470
https://forkphorus.github.io/#315925470
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
https://forkphorus.github.io/app.html?id=318141780&turbo=false&full-screen=true
so this project loads fine, however, when you choose a planet name and press enter, the chat box stays there, then the music overlaps because in 3.0 stopping a script stops the music too, but in 2.0 thats not the case.
It's probably possible to optimize loops inside of "Run without screen refresh" blocks and use actual JS loops instead of queue/forceQueue
Our Scratch 3 list watches are terribly slow and can really be noticed on any project that has large lists (such as my sorting algorithm projects), where a very significant time can be spent creating the list and keeping it up to date.
Describe the issue below:
Bad SVG rendering
Project URL: https://scratch.mit.edu/projects/313100752/
Project ID: 313100752
https://forkphorus.github.io/#313100752
Mozilla/5.0 (X11; CrOS x86_64 11895.118.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.159 Safari/537.36
Some sounds don't play. I think I know the cause -- audio decoding is problematic and the audiobuffernodes used by forkphorus cannot contain too much audio.
Describe the issue below:
Project is a remix of https://scratch.mit.edu/projects/15945630/ with no changes other than to force it to be a Scratch 3 project.
Significant rendering issues. Functionally just fine, however.
Project URL: https://scratch.mit.edu/projects/288609058/
Project ID: 288609058
https://forkphorus.github.io/?debug#288609058
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0
Target ES5 instead of ES6 to support more browsers.
Describe the issue below:
Problematic commit: c72bf86. Broadcasts have been through, well, quite a few iterations and they're still very wrong, apparently.
Project URL: https://scratch.mit.edu/projects/116491454/
Project ID: 116491454
https://forkphorus.github.io/#116491454
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0
Describe what you were doing to cause this error:
Project URL: https://scratch.mit.edu/projects/304369304/
Project ID: 304369304
https://forkphorus.github.io/app.html?id=304369304&turbo=false&full-screen=true
Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.125 Mobile Safari/537.36
Message: textElements[Symbol.iterator] is not a function
Stack:
TypeError: textElements[Symbol.iterator] is not a function
at patchSVG (https://forkphorus.github.io/phosphorus.dist.js:4987:28)
at getAsText.then (https://forkphorus.github.io/phosphorus.dist.js:5010:25)
If you quickly hit either "1 Player" or "2 player" (within 48 frames), then not all the tiles will render.
The problem is that the repeat (48)
loop used to spawn the tiles does not run instantly as it does in Scratch 3.
Project URL: https://scratch.mit.edu/projects/241565591/
Project ID: 241565591
file:///C:/Users/Thomas/Projects/forkphorus/index.html#241565591
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0
apparently you can do that, but forkphorus attempts to convert it to a number immediately and that causes issues.
Currently the loader checks the project ID and compares it to 276660763 to determine the project type. This obviously has problems.
Instead, query http://projects.scratch.mit.edu/123456789 and determine the type automatically.
Pen cannot hold a value of transparency and is instead full opacity.
Describe what you were doing to cause this error:
Tried to run a certain project, internal error occured.
Project URL: https://scratch.mit.edu/projects/78096056/
Project ID: 78096056
https://forkphorus.github.io/forkphorus/#78096056
Mozilla/5.0 (X11; CrOS x86_64 11895.118.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.159 Safari/537.36
Message: (object.listeners.whenSceneStarts[key] || (intermediate value)(intermediate value)).push is not a function
Stack:
TypeError: (object.listeners.whenSceneStarts[key] || (intermediate value)(intermediate value)).push is not a function
at Object.compiler.compileListener (https://forkphorus.github.io/forkphorus/phosphorus.dist.js:5641:109)
at compileScripts (https://forkphorus.github.io/forkphorus/phosphorus.dist.js:4699:30)
at Object.compile (https://forkphorus.github.io/forkphorus/phosphorus.dist.js:5662:21)
at https://forkphorus.github.io/forkphorus/phosphorus.dist.js:4387:32
Something similar to https://llk.github.io/scratch-vm/ would be great
Scratch 2 allowed you to use hacked blocks to detect things like that. Scratch 3 does not, but forkphorus potentially reimplement it.
Sounds:
Events:
Sensing:
Control
Music: (extension)
All other extensions except pen:
It's probably time.
Project URL: https://forkphorus.github.io/#150752251
Project ID: 150752251
https://forkphorus.github.io/#150752251
Mozilla/5.0 (X11; CrOS x86_64 11021.81.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36
Describe the issue below. Please be specific, things like "it doesn't work" are not helpful.
Buenos dias. Como puedo hacer el Package??? o todavia no lo teneis habilitado???
Gracias
Project URL: https://scratch.mit.edu/projects/283204686/
Project ID: 283204686
https://forkphorus.github.io/#283204686
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
Describe what you were doing to cause this error:
Loading project.
Project URL: https://scratch.mit.edu/projects/250740608/
Project ID: 250740608
https://forkphorus.github.io/#250740608
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36
Message: Unknown project type (only Scratch 2 and 3 projects are supported)
Stack:
Error: Unknown project type (only Scratch 2 and 3 projects are supported)
at https://forkphorus.github.io/player.js:178:17
Connecting to the real cloud variable server is probably a terrible idea for various reasons (behavioral differences, somehow need to get the user's auth token, etc.). However, it wouldn't be impossible for forkphorus to have its own cloud data server if it really matters. Perhaps cloud variables could be implemented as read-only at project startup or something so that you can still view cloud highscores in projects, and things like that.
Update the audio engine similar to how the other parts of phosphorus have been refactored.
Standing near a wall makes you slowly float up.
Project URL: https://scratch.mit.edu/projects/247070325/
Project ID: 247070325
http://localhost:5000/?debug#247070325
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
I think that's a thing people want.
The problem being I know nothing about android development, so that's probably not going to happen soon.
Describe the issue below:
Level is invisible.
Project URL: https://scratch.mit.edu/projects/134430880/
Project ID: 134430880
https://forkphorus.github.io/#134430880
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36
Describe what you were doing to cause this error:
Beat a level
Project URL: https://scratch.mit.edu/projects/310906817/
Project ID: 310906817
https://forkphorus.github.io/#310906817
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
Message: Argument 3 of CanvasRenderingContext2D.getImageData is not a finite floating-point value.
Stack:
trapInstanceMethod/item.obj[item.propName]</<@https://forkphorus.github.io/:209:23
spritesIntersect@https://forkphorus.github.io/phosphorus.dist.js:1412:54
touching@https://forkphorus.github.io/phosphorus.dist.js:2522:48
@https://forkphorus.github.io/phosphorus.dist.js line 5512 > eval:21:8
step@https://forkphorus.github.io/phosphorus.dist.js:5355:33
Right now your username is always an empty string, as if you were a signed out user. What if the user could choose their username (perhaps behind some "advanced settings" menu)? It would be kinda nice, I guess. Project creators use usernames to several things including gating features and saying things to you by name.
Apparently an absolutely astounding amount of projects rely on this behavior.
Projects often error while loading due to networkerrors. Our P.IO.fetch should be more persistent or reliable when fetching things.
Going back to XHR might not be a bad idea, especially for onprogress (as was attempted in the io-tasks branch)
It might be a better idea.
Directly references a list by its block in Scratch converts it to a string.
The behavior is:
Forkphorus does not implement this and you currently get the JavaScript behavior of joining all the items with commas.
Describe the issue below. Please be specific, things like "it doesn't work" are not helpful.
Project URL: https://scratch.mit.edu/projects/273402679/
Project ID: 273402679
https://forkphorus.github.io/#273402679
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0
Describe the issue below:
Radix sort fails a vast majority of the time.
Project URL: https://scratch.mit.edu/projects/163454650/
Project ID: 163454650
https://forkphorus.github.io/#163454650
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0
Describe the issue below. Please be specific, things like "it doesn't work" are not helpful.
You spawn in the floor. The cause is that the fade into the project messes up the color collision testing until you're in the floor.
Project URL: https://scratch.mit.edu/projects/281003982/
Project ID: 281003982
https://forkphorus.github.io/#281003982
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0
Describe the issue:
Project URL: https://scratch.mit.edu/projects/320329254
Project ID: 320329254
https://forkphorus.github.io/#320329254
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
Describe the issue below:
Project cannot be used because scrolling does not send up/down key inputs to the project.
Project URL: https://scratch.mit.edu/projects/293802025/
Project ID: 293802025
https://forkphorus.github.io/#293802025
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0
Describe the issue below:
Text does not render.
Project URL: https://scratch.mit.edu/projects/307676110/
Project ID: 307676110
https://forkphorus.github.io/#307676110
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
SVGs created by Scratch 2 have vastly incorrect viewboxes set, which can cause part of them to be cutoff very often.
TTS is currently not supported, and the blocks are instead skipped.
Possible methods to add extension:
It's unclear if TTS is worth supporting as our most common niche seems to be speeding up compute-limited projects and very few of these use TTS in any significant capacity
Should add Future support to the compiler before this happens.
Please describe what you were doing to cause this error:
Crashes after loading the project. Oof. Also apparently it's missing an actual error message so...
Project URL: https://scratch.mit.edu/projects/277658722/
Project ID: 277658722
https://forkphorus.github.io/#277658722
Mozilla/5.0 (X11; CrOS x86_64 11021.81.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36
[object Event]
Describe the issue below:
Trying to view custom levels causes an endless loop.
Project URL: https://scratch.mit.edu/projects/15945630/
Project ID: 15945630
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0
https://developers.google.com/web/updates/2017/09/autoplay-policy-changes#webaudio
It affects us. Creating the audio nodes when the user hits a button is not an option, but resuming it after a gesture doesn't seem too bad.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.