Forgejs Versions Save

ForgeJS is a javascript framework that unleashes immersive WebVR experiences.

0.9.5

6 years ago

Release notes

Viewer

  • New: you can now set options of the WebGL context in the viewer json configuration.
  • New: onMainConfigLoadComplete event that is fired when all the configuration has been parsed. So the new event order is onReady, onConfigLoadcomplete then onMainConfigLoadComplete.

Media

  • Fix: startTime not taken into account. Medias were always starting at 0s unless it was synced with another media.
  • New: add a preview object to the media, allowing to have a low resolution preview of the displayed media (work for media of image type).
  • New: ability to load a complex image composed of multiples tiles, for high multi resolution purpose.

Renderer

  • New: multiresolution image processing for tiled images through a new background pyramid renderer. See the multiresolution and paris26g samples for use case.

Display

  • New: add a capture method to FORGE.Canvas. This allows you to capture the user viewport and get an image with viewer.canvas.capture().

Camera

  • Update: onCameraChange event is now renamed to onChange.
  • New: add a onOrientationChange event to the FORGE.Camera.
  • New: add a onFovChange event to the FORGE.Camera.
  • Improvement: the lookAt method takes cancelRoll argument into account.

Views

  • New: add flat view options to repeat the media on x and y axis.

Video

  • New: add a playbackRate setter for VideoHTML5 and VideoDash.
  • New: add onRateChange event for videos.

Hotspots

  • New: Hotspots3D now support the use of offset values (x, y and z) into the geometry configuration object in world unit.
  • New: HotspotsDOM now support the use of offset values (x, y) into the dom configuration object in pixel units.
  • New: hotspot has a new autoScale parameter in their configuration. This allows the hotspot to keep the same aspect whatever the fov is.
  • Fix: when destroying a HotspotDOM, do not remove the dom but hide it away. Adaptation of the events because of bad reference when destroying it.

Plugins

  • New: add GoogleMaps plugin to display a GPX track on a Google Maps.
  • New: add an Altimeter plugin to display the altitude extracted from the telemetry sensors of GoPro's cameras.
  • New: add an Compass plugin to display the orientation extracted from the telemetry sensors of GoPro's cameras.
  • New: add an Speedometer plugin to display the speed extracted from the telemetry sensors of GoPro's cameras.
  • New: add an Accelerometer plugin to display the G force extracted from the telemetry sensors of GoPro's cameras.
  • New: add a Share plugin that keeps the url updated according to your camera orientation. That allows the user to share its current view with people through the url.
  • Update: add playback rate menu to the VideoControls plugin.
  • Update: new version of the Editor plugin. You can now manipulate hotspots in space (translation, rotation, scale), change their names, edit the geometry, browse the history.
  • Update: new version of the Toolbox plugin that have a view selector now.

Samples

  • New: telemetry sample to demonstrate the use of the telemetry plugins (speedometer, accelerometer, compass and altimeter). The plugins can be display as hotspots in the 3D world or in screen space in 2D.
  • New: multiresolution sample to demonstrate the performance and the display quality of ForgeJS to handle any kind of panoramic-image size.
  • New: paris26g sample. It is a multiresolution sample with our famous Paris 26 Gigapixels panorama.
  • New: googlemaps sample to demonstrate the use of the GoogleMaps plugin.
  • New: view-flat sample to demonstrate the options of the flat view.
  • New camera-events sample to log new FORGE.Camera events in the browser console.
  • Update: edit editor sample for the new version of the Editor plugin.
  • Update: edit multiple-media sample to demonstrate the flat view options.

Misc

  • Update: Omnitone library to 1.0.1
  • Update: dash.js library to 2.6.0

0.9.4

6 years ago

Release notes

!! Warning: We have a regression on Samsung gear VR with this 0.9.4 version. We are working on it, but we want to share this version for people who does not target Samsung gear VR, especially for hotspots DOM which are effective only on desktops

Viewer

  • Fix: Viewer.destroy crash has been fixed.
  • Fix: Opening new tab without focusing it crash has been fixed.
  • Fix: Mouse position detection on Hotspot click when the viewer in not at full page but in a smaller container in the middle of the page.

Scene

  • New: Add scene media events in JSON configuration. (onPlay, onPause, onSeek, onEnded). That can be useful to load another scene at the end of the current video scene.

Renderer

  • New: worldToScreen and screenToWorld methods for rectilinear view.
  • New: worldToScreen and screenToWorld methods for gopro view.
  • New: sphericalToCartesian and cartesianToSpherical methods into FORGE.Math.

Camera

  • Add a keep parameter to camera configuration to keep camera orientation from a scene to another.

Hotspots

  • New: DOM Hotspots management. Now you can position HTML elements over the 3D scene that will follow a position in space if the camera moves.
  • Fix: Better management of the hotspots texture opacity.

Director's cut

  • Fix: Seeking event support for Firefox has been added.

Controllers

  • New: Add the pinch to ControllerPointer in order to be able to change the FOV by pinching on touch screens.
  • New: Add drag mode to ControllerPointer for mouse and touch screens.
  • New: Add a zoom to pointer option to the ControllerPointer.

Device

  • New: Device compatibility detection for plugins has been improved to describe complex configurations.

Plugins

  • New: First iteration on a hotspots editor plugin called Editor.
  • New: Toolbox plugin can now have options to just display the needed panels.
  • New: Toolbox plugin have two new panels that can help you to tweak and test the pointer controller parameters. (mouse and touch).
  • Fix: VideoControls plugin now uses svg and png assets to ensure IE11 compatibility.
  • Fix: GyroscopeButton and WebVRButton plugins use a new image url.

Website

  • New: add copyright licenses for all assets used into the samples.
  • New: editor sample to demonstrate the very first version of the Editor plugin.
  • New: controller-pointer sample to demonstrate drag vs move modes.
  • New: hotspots-dom sample to demonstrate HTML/CSS usage for hotspots that are positionned over the 3d scene.
  • Fix: hotspots-states-animation sample doesn't target the right action.
  • Fix: hotspots-animation sample use new assets for Firefox, Edge and IE11 compatibility.
  • Fix: audio-playlists sample doesn't play the second track on Edge and IE11.
  • Fix: vrrroom sample doesn't display the menu on Firefox.

Misc

  • New: Unit tests on some mathematics/coordinate functions.
  • Upgrade: three.js version to r86.
  • Upgrade: dash.js version to 2.5.0.

0.9.3

6 years ago

Release notes

Viewer

  • New: Add the onConfigLoadComplete event to the FORGE.Viewer.
  • Fix: Multiple viewers on the same page is now possible as long as the history feature is disabled.
  • Fix: Viewer.destroy crash has been fixed.
  • Fix: beforeRender and afterRender callbacks are now functional on minified build.

Camera

  • Fix: Camera limits are now properly assigned on scene change.

Controllers

  • New: Gamepad controllers support has been added.

Audio

  • Fix: Omitone ambisonic library has been updated.
  • Fix: Ambisonic resume/restart has been fixed.

Display

  • Fix: Canvas is now properly resized when browser is in WebVR emulation mode.

Hotspots

  • New: Hotspot states are now handling the transform component.
  • New: Hotspot states are now handling the sound component.
  • New: Hotspot states are now handling the animation component.
  • Fix: Animated hotspots are now properly destroyed.
  • Fix: Hotspots don't need to be clicked twice on mobile.
  • Fix: HotspotGeometry.SHAPE crash when there are less than three points. Add a default behavior.

Director's cut

  • Fix: Director's cut bad synchronisation has been fixed.

Post processing

  • New: Add Shader pass support in json configuration for post processing.

Plugins

  • New: Gamepad monitor plugin to help the Gamepad debug.

Website

  • New: hotspots-states-sound sample to demonstrate the sound state change.
  • New: hotspots-states-animation sample to demonstrate the animation state change.
  • New: multiple-viewers sample to demonstrate the multiple viewers in the same page.
  • New: gamepad-controls sample to test the GamepadController.

0.9.2

7 years ago

Release notes

Viewer

  • New: Add of autoPause and autoResume options to viewer configuration. It use the Page Visibility API which lets you know when a webpage is visible or in focus. If autoPause is set to true, all video and sounds will be automatically paused.
  • New: viewer.mainConfig references the global json configuration object of the project.
  • New: viewer.config references the viewer object of the json configuration.

Story

  • New: New events declaration for viewer.story in the json configuration. Available events are: onReady, onGroupChange, onSceneLoadStart and onSceneLoadComplete.

Scene

  • Change: The FORGE.Scene now owns the media reference.
  • Change: The FORGE.SceneParser has been deleted.
  • New: The FORGE.Scene object now has a onMediaCreate event.
  • New: New events declaration for scenes in the json configuration. Available events are: onLoadStart, onLoadComplete, onUnloadStart and onUnloadComplete.
  • New: scene.load can now take a time in parameter when you need to load a video scene at a specific time.
  • New: Video scenes now can be auto time synchronized thanks to the sync attribute of the scene configuration. (sync attribute is an array of scene uids to be synched together).

Renderer

  • New: Add a ViewManager. To get and set the view type you can use viewer.view.type.
  • New: RendererManager now has a disableVR method in addition to the enableVR method.
  • New: Add a new view called "flat" view to display non spherical media.

Camera

  • New: Add a flat camera based on THREE.OrthographicCamera.

Device

  • New: FORGE.Device now emits a onReady event.

Controllers

  • New: Add a FORGE.ControllerGyroscope that is enabled by default.
  • New: Allow the inversion of each axis of FORGE.ControllerPointer independently.
  • New: The FORGE.ControllerPointer now switches fullscreen mode on double click by default.
  • New: FORGE.ControllerManager has a getByType method.

Audio

  • New: Interaction with the autoPause and autoResume viewer options.

Video

  • New: Interaction with the autoPause and autoResume viewer options.
  • Fix: Catch the error when autoPlay is set to true on mobile.

Sprite

  • New: Add a SpriteConfig object.

Hotspots

  • Change: Hotspots that need to be auto rotated to face the center of the scene have to set the facingCenter attribute to true in its configuration.
  • New: Sprite animation material support.
  • New: Video texture material support.
  • New: Basic support of 3D shapes as hotspot geometry.
  • Optimization: Hotspot creation and raycasting optimizations.
  • Optimization: Texture is now re-used and not created every frame.
  • Fix: Hotspot scale fix. The scale used to be applied twice (on geometry then on mesh), now it is only applied on the mesh.
  • Fix: Hotspot out method is now called properly.
  • Fix: Add minFilter to LINEAR on HotspotMaterial texture to remove the blurry effect.
  • Fix: Hotspot visible state is now taken into account.

Actions

  • New: Actions target is now window by default.

Components

  • Fix: FORGE.Textfield.fontWeight property is now set properly.

Plugins

  • New: Toolbox plugin that displays a GUI to see the camera values, change the scene or the view type.
  • New: GyroscopeButton plugin to display a gyroscope toggle button if gyro is available on the device.
  • Fix: Plugin versioning.

Website

  • Sample: New hotspot-sprite sample to demonstrate the use of animated sprites as hotspot texture.
  • Sample: New hotspot-video sample to demonstrate the use of video as hotspot texture.
  • Sample: New scene-sync sample to demonstrate the time synchronization between scenes.
  • Sample: New debug sample to demonstrate the debug GUI plugin.
  • Sample: New immersive-and-narrative project to demonstrate alternating between spherical (immersive) and non spherical (narrative) media.
  • Sample: Edit change-view sample to demonstrate the flat view.
  • Sample: Edit multiple-media sample to demonstrate the flat view.

Misc

  • Fix: global flags FORGE.DEBUG and FORGE.WARNING are now working properly.

0.9.1

7 years ago

Release notes

Viewer

  • Fix default background configuration for the main container.

Scene

  • Fix background configuration on scenes.

Media

  • New: Add a new media type "grid" to generate a grid preview with optional parameters

Renderer

  • Don't update texture when the video is paused.
  • Don't render the background when a scene has no media.
  • Unload scene background on scene unload.
  • Fix onBeforeRender and onAfterRender events on Hotspot3D objects.
  • Fix render routine when pipeline has no fx.

Camera

  • Camera is refreshed before rendering every frame.
  • Fix camera refresh on viewer resize.

Audio

  • Redesign of the HTMLAudioElement loader to solve events never fired on Microsoft Edge.
  • Deactivation of the AudioContext suspend and resume methods for Safari browser compatibility.

Video

  • Video auto quality improvements when you use multiple video sources as quality levels.
  • Fix multiple quality issues on Microsoft browsers.
  • Add playslinline attribute for HTMLVideoElement to display the video properly on iOS 10.x.
  • Video levels can now target a specific environement. Useful to prevent the use of a too high video resolution on Safari or Firefox.

Media

  • Add a new grid media type to display a 3D grid background.
  • Add a startTime property on video media type options.

Hotspots

  • Hotspot are now able to crop a specified frame in a texture source.
  • New hotspot states feature that handles material change on mouse over and custom states.
  • Hotspots are now taking account of the interactive property in json configuration.
  • Hotspots cursor is now customizable with the new cursor property.

Plugins

  • Open a public github repository for plugins.
  • Add SafariCORS plugin to handle Safari bug with CORS.
  • Add MobileVideoPlay plugin that display a play button on mobile to fix the autoPlay.
  • Add PerformanceMonitor plugin based on Stats.js.
  • Add PreviousNextButtons plugin to navigate between scenes.
  • Add VideoControls plugin to add a GUI on video scenes.
  • Add a WebVRButton plugin to display a button to toggle WebVR if the browser is compatible.

Website

Open-source

  • Add a template for GitHub issues

Misc

  • Update the way we detect Safari browser in FORGE.Device
  • Remove unused classes CameraViewFinder.js, CameraViewFinderType.js, Debug.js.
  • Cubemap videos on cdn.forgejs.org for testing.
  • Array.prototype.keys polyfill for cubemap media type under Internet Explorer 11.
  • Package display has been reorganized in sub packages.
  • Add a template for GitHub issues.

0.9.0

7 years ago

Release notes

General

  • Dependency: Update threejs to r83.

Documentation

  • New API documentation and JSON reference for 0.9.0.
  • New tutorial: Creating my first immersive experience.
  • New tutorial: How to declare and use actions.
  • New tutorial: Create a hotspot.
  • New tutorial: Hotspots events.
  • New tutorial: Hotspot sound.
  • New tutorial: Hotspot animation.
  • Sample: Update directors-cut sample.
  • Sample: Update hotspots-sounds sample.
  • Sample: Update hotspots-animation sample.

Viewer

  • Feature: Add an accessor for camera on viewer.
  • Feature: Add an accessor for view on viewer.

Scene

  • Feature: Scene can now declare a global sound in addition of playlists.

Renderer

  • Feature: Hotspots are now rendered in all projections by GPU (vertex shader)
  • Feature: Add two callbacks beforeRender and afterRender
  • Feature: Add a picking manager to control all 3D objects picking for all projections including VR.
  • Feature: Add an accessor type for views.
  • Fix: Object picking support for Hotspot3D without texture.
  • Architecture: ShaderLib based on THREE.ShaderLib gathering all GLSL code for vertex and fragement shaders
  • Architecture: Views are pointing on ShaderLib to define rendering GLSL code
  • Refactor: EffectComposer and all passes (shader, render, texture) have been subclassed
  • Refactor: All 3D objects are using THREE.RawShaderMaterial with FORGE shaders

VR

  • Feature: The camera gaze cursor is now customizable in the JSON configuration.

Audio

  • Fix: Sound volume setter check for NaN.

Director

  • Refactor: Update "waypoints" to "keyframes".

Hotspots

  • Refactor: Update "transforms" to "keyframes" in the animation.