I started this project 1 month ago, my goal is to create a clone of portal 2 editor chamber with three.js, these are the results I was able to emulate so far.
I am planning to release a stable version this year, next month I am planning to start doing some playtesting to get some feedback and test performance on different hardwares.
I got the portal shader from Shader - Shadertoy BETA and reworked to fit my project, thanks to the user Chaser_Code on three.js forum that helped me with some problems I was having with the shader. Here is a link for the portal shader: https://codepen.io/rafadante/pen/ZEVoXWj
For the mobile controls, I copied the button layout from the gamecube controller, this example helped me with the joystick movement: https://codepen.io/ogames/pen/rNmYpdo
I was able to test the mobile version on 2 devices, on the video, the capture is from a samsumg galaxy s20 where I was able to get good performance with 1 recursive level portals, I was also able to test on an iphone 8 where I get good performance without portals but when placing portals the fps started to drop a lot, a solution I will implement for devices that can not keep 60 fps is a 30 fps option.
I started to work on the laser emitters, but there is still some work to do to make the laser interact with multiple cubes and make the bloom on the laser more visually appealing.