Leaderboard


Popular Content

Showing most liked content since 01/19/2017 in all areas

  1. 23 points
    Deltakosh

    Babylon.js 3.1 is available!!!

    Dear beloved community, I'm thrilled to announce that Babylon.js v3.1 is available. For this special occasion, we created a cool announcement video: I will blog on dev.windows.com later today but I wanted to share with you beforehand The list of features is (as always) really great and we can all be really proud of such an achievement! We also shipped several WebVR demos: And do not miss our hero demos: Congrats team!!!
  2. 19 points
    Temechon

    New Playground features

    Hello community! As you know, the playground is a very valuable tool if you want to try, experiment and share your Babylon scenes. You can even search for a specific word in the whole snippet database from the documentation website, that make it easy to find and discover a new snippet. And because we know it's a very powerful tool, we worked hard last month with @Deltakosh on a better user experience when searching for playground. From now on, when saving a new playground, you'll have to fill several information: a title, a description and some tags. It will be asked only once at the playground creation, and all next iterations of this PG will share these metadata. You won't be able to redefine it afterwards. For all PG that don't have any metadata, you will be asked to fill it only once. The search has also been improved. You can search for a word in the PG code like usual, but you can also search for a word into a PG title/description, or a specific tag. The overall quality of search had also been improved (ou can now search with several words, that will return all PG that contain these words, and several bugs have been fixed). All this work couldn't have been done without @Jaskar and @DeathSoul who wrote all the code (back and front-end), and @Deltakosh of course So go try it : http://doc.babylonjs.com/playground Please helps us by reporting all bugs you can have in this thread Thank you very much !!
  3. 19 points
    Deltakosh

    Announcing Babylon.js v3.0

    We did it again Congrats to all our great community, we've just shipped Babylon.js v3.0: https://github.com/BabylonJS/Babylon.js/releases/tag/v3.0.0 I hope you'll like it! And the blog post: https://github.com/BabylonJS/Babylon.js/releases/tag/v3.0.7
  4. 17 points
    Deltakosh

    Announcing Babylon.GUI

    Hey all, I'm really pleased to announce the availability of Babylon.GUI. http://doc.babylonjs.com/overviews/gui In a nutshell, Babylon.GUI is a GUI layer which can be used inside your scene. It is an alternative to DOM or Canvas2D. Please try it and give me any feedback
  5. 17 points
    Hello team! Since the very first version of Babylon.js materials are working in a pull mode. This means that every time a mesh needs to be rendered, its material has to ask the engine about a lot of information in order to compile the best shader possible for the given mesh. For instance, here is an incomplete list of states required to compile a shader: - Lights affecting the mesh (taking in account inclusion and exclusion lists and masks) - Textures and channels (including associated parameters like parallax for bump or reflection mode for reflections) - Fog, clip planes, point rendering or wireframe - Mesh attributes (does the mesh contains UV? tangent? colors?) This leads to a pretty expensive function named Material.isReady. Due to the previous reasons, the function is really CPU intensive. Here is for instance the profile of the "materials" playground: The highlighted functions are part of the IsReady root function. The scene is extremely simple and you can see that the isReady is taking almost 13% of the CPU time While it was ok because of the complexity of the task assigned to this function, I decided recently to change it to a clever model: The push mode. When a material is in this mode, instead of asking on every frame for every state, the states will push updates to the material when they change. Obviously the performance boost is immense. Look at the same profile with the new mode: We are now at 2.51%. On bigger scene like Sponza, this function could take up to 30%: And now with the new mechanism: ONLY 3%!!!!!!!!!! But obviously with such a big change, there will be some bugs.. So please use this thread to report any issue with StandardMaterial. If everything is fine, I'll update the PBR to push mode in one or two weeks. Associated PR: https://github.com/BabylonJS/Babylon.js/pull/1959/
  6. 14 points
    jerome

    OfficeGames project

    Hi people, I'm glad to introduce you to my new project : OfficeGames. http://officegames.eu Well ... 3D games for office computers (not only, though). As said in the text, there's only one game for now and it's not even finished. I need your feedback and ideas to improve it and get it to the right direction. So please let your opinions, comments, criticisms, wishes, whatever in this thread. I won't answer everyone but will read them all for sure. Have fun [EDIT] FYI, my best score ever is 10200.
  7. 14 points
    Deltakosh

    Help wanted!

    Hey team! we were clearly heads down working on 3.0. Now that we successfully shipped it I would like to get the help of our wonderful community. I would like to improve the content of our documentation. If you go there: https://github.com/BabylonJS/Documentation/issues you will find a list of issues related to the doc. There are 2 kinds of issues: Missing documentation: These issues are used to flag a missing tutorial / documentation / overview Incomplete documentation: These issues flag articles / topics where we consider we should add more info If you want to help, you can: Create more issues to help identify what is missing / incomplete / unclear / using bad english / whatever could be wrong Take one issue and fix it: My favorite one Pick an issue, read this small tutorial and contribute to the best doc ever made for a 3d engine One of the goal of the 3.1 will be to add helpers everywhere to make common tasks even simpler. And I'm convinced that doc will be an important part of this simplification as well. Thanks a LOT
  8. 14 points
    javalang

    PBR composer ( node based )

    Hello, I'm happy to announce that the node based PBR Composer is on the road. What is PBR Composer ? In short, PBR Composer helps you design and visualize a PBR Material in an efficient way. Parameterizing takes place by dragging and connecting specific nodes from a palette (typically textures, colors and uv-coordinates) to the output node, which represents the PBR Material. A preview panel lets you see all changes in realtime and the corresponding js-sourcecode will be updated as well. The resulting graph can be downloaded in JSON format for later use. Images can be inserted via preview fileselect dialog and/or Drag&Drop, in latter case the images will be transformed to embedded data-urls so the javascript functions can be reused without dependencies. Different meshes and environment-maps are available to see the material under different geometry and reflective light conditions. Motivation for PBR Composer: Due to the complexity of the PBR material (soo many combinations with soo much amazing effects) there is a need of having realtime feedback reflecting the changing parameters. Other than some editor already out using a bunch of parameters in confusing properties panels, nodes lets you to concentrate only on the parameters you need giving a nice overview in form of a graph. Nodes can also be shared and avoids therfore redundancy in the sourcecode. The goal is/was to make the user interface as efficient as possible. The idea for realizing the PBR Composer was inspired from Shader Editor. Technical details: PBR Composer is a web application based on dat.gui, w2ui, litegraph.js and of course on BABYLON.js TODO: At the moment, PBR Composer is customized for PBR-Glossy materials. The current activity is realizing a function for switching between Glossy and Metallic paradigms. Any questions? Let me know... PS: PBR Composer is still in alpha stage but will be deployed in beta stage soon Here it is te demo ...
  9. 14 points
    Sebavan

    Webgl Spector

    Hello, I am happy to announce the release of my last Dev: http://spector.babylonjs.com This will help any of you willing to troubleshoot or understand what are the webgl commands generated by the engine ! Have fun,
  10. 14 points
    Hello team! as part of 3.0 version, I'm proud to announce the availability of ESM shadows (Exponential Shadow Maps). I updated the great doc done by @Wingnut to take this in account: http://doc.babylonjs.com/tutorials/shadows VSM (variance shadow maps) were removed (to keep backward compatibility the properties are still here but they will trigger a warning in the console). ESM are great because they can be blurred. Here is an example of all kind of shadows we have now: http://www.babylonjs-playground.com/#20FROK#2 ESM are great because they allow you to deal with selfshadowing: http://www.babylonjs-playground.com/#1CXNXC#3 Hope you like it!
  11. 13 points
    rich

    Forum Downtime - The forum is moving

    Hi all, Yesterday, starting at 4pm GMT, the forum suffered a comprehensive, well-coordinated DDoS attack. This was a properly distributed attack, meant to disable the site (which it did), not just some script kiddies playing around. We had thousands of open connections blocking ports and exhausting our httpd service, with sustained inbound traffic floods of 20GB per second (the equivalent of saturating a dedicated 40Mbps T3 line). I spent the entire night working diligently with my host to resolve the problem. As a side effect, the attack also took down other sites hosted on the same server, including the Phaser site. The target, however, was the forum. We finally managed to block the attack, but there were 12 hours of downtime and ripples of it carrying on throughout today. It cost me a lot of time, money, and effort. Although no-one has claimed to be responsible we have evidence indicating it was related to a previous altercation that took place on the forum. As a result, several things are happening: 1) The forum is moving to a different host. It will be hosted directly by Invision, the company who make the forum software. They are in the process of transferring the forum, and in approximately 6 hours time it will be offline as the transfer takes place. They will retain all member accounts, forum posts and file uploads. Custom plugins will also be kept. My thanks to the Babylon.js team to helping fund this move. 2) The Chat room has been disabled, and will not be bought back after the move. 3) The forum will be offline as the domain name is transferred over the course of this weekend. Honestly, I'd just wait until Monday and come back then. 4) I am personally taking the decision to remove a member of the community a lot of you may know: TrueValhala. To be clear, I do not believe he is responsible for orchestrating the DDoS at all. However, he constantly clashes with other forum members (some of it warranted, some most certainly not), and I am regularly receiving complaints to the point where I cannot ignore them any longer. This DDoS attack was the final straw. I've given this situation a lot of thought, and for many years I have let his actions slide because it was always just a form of 'passive aggressiveness' and over-reaction, rather than anything malicious, and sometimes it was justified too (he receives his own fair share of vitriol now and again.) If you are one of those who has attacked him in the past, perhaps you helped contribute to his polemical responses? But I've moderated forums for over 20 years now, and can confidently say this is one is the most helpful and friendliest ones I've had the pleasure to be part of, and I'm not willing to let it be negatively impacted like this any longer. I'm genuinely upset it had to come to down to this. I know a lot of you follow TV and admire his work, and personally, I admire greatly what he has achieved with html5 on a business level. I'm only writing about him here because I know a lot of you will ask why he is 'banned', I didn't wish to single him out, but he's a prominent part of the community, and you don't just remove that without justifying it first. I genuinely wish him the best for the future and hope he can find another forum to share his insights on, for when you strip away the scathing elements, what is left is usually really informative. You're welcome to email me directly about any of this.
  12. 13 points
    ozRocker

    3D scan using a single iPhone only

    Most people here know that I have an 82 DSLR cammera scanning rig. I use this specifically for scanning in people at the shortest time possible (which is currently 1/300th of a second). However, such a complex rig is not required for scanning objects. You don't even need a DSLR camera or a handheld scanner. In this demo I used a simple iPhone 6+ and walked around a statue. We took 89 photos from different angles. My web designer had to stand on my shoulders for the top row of photos. The bust needed to have smooth shading but the base has sharp edges which I needed to preserve so I wanted flat shading for that. With babylon.js you can't pick and choose which edges to smooth. In order to pull this off I made the base and bust 2 separate meshes and turned off smooth shading on the base. It still doesn't look perfect, but it was much better than everything smoothed or everything flat. This is my first test scanning with an iPhone and I usually scan people so this is a rough demo. www.punkoffice.com/statue
  13. 12 points
    Deltakosh

    Introducing morph targets

    Hey team!!! I'm pleased to announce the availability of morph targets! Please read more here:http://doc.babylonjs.com/tutorials/how_to_use_morphtargets
  14. 12 points
    Deltakosh

    Babylon.js v3.0 is almost done

    Hey team! we plan to ship bjs 3.0 on 7/12/2017. Please consider adding what you want before end of this week (7/7) or it will have to wait for a couple of weeks (We will keep the code frozen for one week to do the final validation)
  15. 11 points
    Zygomatic

    500 HTML5 games in 4 years.

    Today, we finished number 500 of our growing list of html5 games. We (Arjan Haverkamp and me, Bram Schoonhoven) started this journey at the end of 2013. Our first html5 game was a remake of our Flash game Animals Connect. Now almost 400 different games are launched on our various portals. Our next goal: 1,000 HTML5 games. If we keep releasing 2 new games a week, it will take us another 5 years. All our games can be licensed for your game portal or you can distribute our games for free. Some statistics: Our most played game is Candy House with 2.5 million game plays. We have around 6 Million game plays per month with 1.25 million unique users playing our games. Average playing time is 12 minutes per game. Interestingly enough, our games are played 69% on desktop, 16% tablet and 15% mobile. Top 5 countries: United States, Germany, Brazil, Poland and Russia. Chrome is used in 58% of the game plays. Some of the tools/technology we use: Howler.js for audio. Hammer.js for touch support. Cloudflare as CDN solution. Javascript Obfuscator for obfuscating Javascript code. Browserstack for testing the games in various browsers. Google IMA SDK for monetization. Google Analytics. Add to Homescreen for adding game to the home screen. Screenfull.js for full screen support. Webfontloader.js for loading custom (Google) fonts. Cordova for creating apps. Website2APK for creating Android apps. PNGquant and JPEGoptim for optimizing images. Wavepad for creating sound sprites and optimizing MP3's.
  16. 11 points
    Just a simple demo displaying the power of the ParticleSystem by creating a low-hanging fog. Not cinematic quality and it can no doubt be done better with a shader, but pretty nice looking for the very low performance impact it has. http://www.babylonjs-playground.com/#BHNVUE Thanks to @Wingnut for finding the PG used as base for this demo. Have a nice saturday
  17. 11 points
    Samuel Girardin

    New Physics Engine Progress

    Hi, Few news about energyJS, It's still in dev. Here is a quick very alpha preview with examples. This is not a bjs plugin version. @RaananW worked one year ago on the plugin. We need to talk about that, For the moment it reproduces more the c inteface of ODE c++ project(http:// www.ode.org). It's quite usefull, ODE documentation is really good, and I kept all the method name. Energyjs is port of Open dynamic engine to JS with EMSscripten (http://kripken.github.io/emscripten-site/) . Tuto1_friction Tuto2_friction2 Tuto3_bounce Tuto4_rolling_friction Tuto5_rolling_friction2 Tuto6_contact_cfm_erp Tuto7_contact_cfm_erp2 Tuto8_motion Tuto1_auto_disable_body WoodMachine BallJoint Trimeshes Vehicle (maybe you need to refresh the html page - loading is async and I forgot to fix that,, same for v+trailers) Vehicle+trailers (arrow key to control the vehicle, d to flip the vehicle) It's only cpu dependent, maybe a little more faster than oimo and canon. Really well documented on ODE's part. You may have a TOTAL_MEMORY bug, search '167108864' in js/energy.js and increased this value. This is just a start. I will publish this week the the typescript dev commented on github .
  18. 11 points
    FunFetched

    Shell Shockers

    http://shellshock.io My first BabylonJS project is a whacky multiplayer first person shooter featuring, well, eggs, of course! It's in very early development and still fairly rough around the edges, but it's super easy to jump in quickly and play. It's just been made public, so finding people to shoot may be a little hit and miss (pun intended). Enjoy! Facebook: http://www.facebook.com/ShellShockGame Twitter: https://twitter.com/eggcombat
  19. 11 points
    Deltakosh

    Improved shadows

    Hey team! We ( @Sebavan and I) spent a lot of time improving the accuracy of our shadow engine. This means that we have now better precision and more reliable shadows generator. You should need less tweaking (bias, etc...). But as the topic is pretty complex please use this thread to report any issue regarding shadows that you may have
  20. 11 points
    Deltakosh

    Playground version selector

    Hello my friends!! I'm happy to announce that the Playground can now let you pick the version you want to use (latest or 2.5 so far). We did it because of the upcoming breaking changes introduced by 3.0 (I'm removing all functions or features marked as deprecated in previous versions)
  21. 11 points
    jpdev

    Multiplayer games challenge - The games

    Hi guys, First of all, thanks to everyone who played my game! Congrats to pepa, BlueManCZ and Athelios! Why congrats? Well they killed the Megaslime together! This is so very cool! I love that you guys organized to play all three classes together, level up and then coodinated to kill the boss. They did that on March 7th and I didn't even notice until now. I am very happy about this - I was really hoping some group of players would do exactly that. Some stats: There were 75 characters created, 7 reached the maximum level of 5. 50 of the characters stayed at level 1, so they just had a quick look at the game/class. Thanks to @RaananW for coming up with the challenge and managing it. Thanks to @Nockawa for implementing Canvas2d. Thanks to all contributers to babylonJS. And a very special thank you to @Deltakosh for creating and maintaining babylonJS!
  22. 11 points
    I'm going to answer that as I'm the one who forced @Deltakosh to switch to TypeScript. First, TypeScript is "just" a superset of JavaScript, adding types and supporting future features of ECMAScript by transpiling down to ES5 or ES6. This means that we don't break anything with regular users that will just use the compiled JS version in ES5 or ES6 and will never see it comes from TypeScript. Thanks to the switch we've made 3 years ago, we've managed to find bugs that were just under our eyes and difficult to find in plain JavaScript and we've also managed to boost our productivity on the engine, which is good for us and our community/customers. @Deltakosh has done a great article on that: https://www.eternalcoding.com/?p=103 On my side, 3 years ago, I was also concerned on the fact we were spending a lot of time answering basic questions of our users, trying to understand if there was a bug in their code or in our code. All this time was our spare time and wasn't used to improve the engine. I've then started to discuss with @Deltakosh on ways to solve that and again TypeScript was a good candidate. Why? Again, thanks to the types exposed, I’ve discovered great possibilities such as the TypeScript playground: http://www.typescriptlang.org/play/index.html I’ve then told to @Deltakosh we could do something similar, having autocompletion in the browser, building some basic sample codes to help our users, learning by live discovering the API. Deltakosh ended up building a much better playground with great features such as saving your code to share it with your colleagues or on the forum for review, downloading the ZIP, etc. Something which would have been much more difficult without TypeScript. TypeScript also offers us to use future features of ES now to add clarity to our code: module, class, arrow functions, generators, async/await, etc. Those are not TypeScript specifics. You will have to learn them to be able to write ES2016/ES2017 code anyway. Regarding the fact it comes from Microsoft, this is really not what influenced us (everybody knows deltakosh and I are MSFTees). Deltakosh was even against at the beginning but quickly changed his mind when he discovered the potential behind without affecting our users. Even if it comes from Microsoft, the web community enjoys TypeScript and other big companies such as Google is using it for Angular 2. TypeScript also offers another great benefit for us: we managed to attract talented developers such as @Nockawa writing the awesome Canvas2D extension who was mainly a C# developer. C#, C++ and Java developers tends to have difficulties understanding some paradigms of JS at the beginning such as the prototype oriented programming, the classical issue with capturing this for closure, writing module/class like with self-executed anonymous functions, etc. TypeScript is hiding that by still generating perfectly written JavaScript under the hood. I tend to find TypeScript also better to work as a team. At last, as said before, we managed to attract some customers using Babylon.js because it is written in TypeScript and you can them fully develop with the .ts version of our engine instead of the .js to have a full typed experience during your development process. Another great benefit: I can compile an ES6 (ES2015) or ES7 (ES2016) version today without changing a single line of code of Babylon. If we would be in plain JavaScript, we would have been forced to rewrite everything to switch from ES3/ES5 to ES6 for instance. The only caveat is that it’s a bit more complex for contributors to the code to do PR to fix bugs or add features. But to be honest, as said, it’s just the JavaScript we will all use in 1 to 2 years. Except this small part, TS doesn’t affect our users because it’s transparent for them, we’re improving the quality of the code, we’re going faster, we’re attracting more diverse talented developers, we’re ready for the future. I really don’t see where the problem is then.
  23. 10 points
    RaananW

    The new Babylon Viewer

    Hi boys and girls, I don't know if you noticed, but the repository has a new directory called "Viewer" : https://github.com/BabylonJS/Babylon.js/tree/master/Viewer The viewer is a simple way of displaying a model without the need of JavaScript at all. It (obviously) uses babylon, and can be customized to your needs using HTML tags and HTML attributes. The only two important lines in your page would be: <babylon model="https://playground.babylonjs.com/scenes/Rabbit.babylon"></babylon> <script src="https://viewer.babylonjs.com/viewer.min.js"></script> Which will result in this: https://viewer.babylonjs.com/basicexample You can read about how to use it and how to customize it here - http://doc.babylonjs.com/extensions/the_babylon_viewer It is currently in a very early stage. The (public) project can be found here - https://github.com/BabylonJS/Babylon.js/projects/6 , including future plans. I am in the process of simplifying the development, build, and deploy process and it will soon be available on NPM as well, if anyone wishes to embed it using webpack/imports/require/whatever
  24. 10 points
    JohnK

    Playground Based Tutorials

    This demo https://economist-exposures-32112.netlify.com/ is inspired by @Wingnut's thoughts about a playground based tutorial. Whilst I have copied the PG code it is meant to be something different to the PG not a replacement. For a start the user cannot edit any code or do their own thing in anyway. It might not be what @Wingnut intends so consider it as the start of a proof of concept. This means you can ignore the style and the twee alien. The code can be found at https://github.com/BabylonJSGuide/InteractiveTutorials and the README gives some information on how I messed around the PG code. Currently there is only one tutorial and here is the code that runs it. Anyone interested in helping with further development of this - you would be most welcome.
  25. 10 points
    end3r

    js13kGames 2017

    It's that time of the year again - time to start thinking about the js13kGames competition. The sixth edition will start on August 13th, 13:00 CEST and will run for a month. For those who don't know it yet: it's an online competition for HTML5 game developers where the fun part is the file size limit set to 13 kilobytes. Check the rules for details. There are always notable judges, lots of cool prizes, and free t-shirts for all entries shipped worldwide. See the forum topics from previous years for reference: 2013, 2014, 2015, 2016. Follow the compo profiles on Twitter and Facebook to be up to date with all the news and announcements. I'm looking for prizes and sponsors, so if you can help with either of those please get in touch! So, who's going to participate?
  26. 10 points
    jerome

    SPS experiments

    Hi, People usually love the Solid Particle System (aka SPS). Some of them sometimes ask for new features like the ability to extend it once created (coming soon) or for some extra speed by the ability to disable some computations. I made some study about how things could get faster. The short answer is : go to a lower lever in the implementation (replace the arrays of objects by typed arrays of floats, for instance), then use if possible other processes (GPU or workers). Well, here are the current status of my prototypes, so you can compare on your computer and browser the differences. The SPS of reference is really big, filled with 40K (yes, 40, 000 !) boxes and tetrahedrons. It's far more than we usually ask to a SPS with animated solid particles in the PG examples you could find in the forum posts. So your browser may suffer a bit ... Reference legacy SPS : http://jerome.bousquie.fr/BJS/test/spsReference.html Then comes the lighter typed array based version : http://jerome.bousquie.fr/BJS/test/spsBuffer.html As you can notice, it's a bit faster. Not only because of the usage of buffers/typed arrays, but also because it has less features than the legacy SPS for now. Let's go on... [EDIT] (from here, your need to have a browser with sharedArrayBuffer enabled) Here comes his new friend, the worker based SPS : http://jerome.bousquie.fr/BJS/test/spsProtoWorker.html This one is really faster. In this version, the particle logic (what the user want them to do) is still in the main thread and the worker only computes the transformations (the final vertex coordinates from the particle rotations, positions, scaling values, etc). At last, here's the second worker version : http://jerome.bousquie.fr/BJS/test/spsProtoWorker2.html It looks faster ... at least on my browsers. In this last version, the particle logic is deported in the worker. The main thread only carries for updating the mesh from the vertex buffers. In both worker versions, the worker computations are decoupled from the render loop. This means that the worker computes, then answers the main thread it has finished and this one just order it to compute again, whatever the render loop is currently doing at this moment. The render loop just reads the data currently updated by the worker in a shared buffer (shared between the worker and the main thread) Next study step to come (not soon) : the GPU based SPS Please wait for a while until the frame counter stabilizes to the current average value if you run the tests.
  27. 10 points
    davrous

    BabylonJS Mansion in WebVR

    Hello, I'm having fun while writing our next big tutorial on building WebVR scene with Babylon v3. Here's a preview of what I'm working on. The Mansion scene is really a great experience in VR! You can use the VR controllers to teleport, it sends a yellow ray by default. If the ray turns blue, it means you're pointing to an actionable item (using our Action Manager). Pressing the VR controller button will run the action on it, most of the time an animation + sound like in the regular version of Mansion: http://www.babylonjs.com/demos/mansion Enjoy! David
  28. This post cannot be displayed because it is in a forum which requires at least 5 posts to view.
  29. 10 points
    Saafine

    Furniture designer

    Hey guys, I've made a furniture designing app using babylon js. Go here to start customizing -> http://portfolio.meble.design/app/ Go here to view a premade model: http://portfolio.meble.design/app/?conf=10041720 or http://portfolio.meble.design/app/?conf=19031726 or http://portfolio.meble.design/app/?conf=19031728 I've also designed a furniture model in the app and then produced it myself to fit into my apartment, it looks like this -> http://i.imgur.com/E06iE5B.jpg
  30. 10 points
    Hi beloved community, The implementation of WebVR 1.1 is in pretty good shape, @RaananW has done an impressive work. We're still in the process of polishing and finding ways to make it simple & powerful, the spirit behind Babylon.js since the beginning. You can read the documentation here: http://doc.babylonjs.com/overviews/webvr_camera and you'll discover that you can map your controllers (HTC Vive Wand or Oculus Rift Touch) to a mesh to the final sample shared at the end: http://www.babylonjs-playground.com/#5MV04 (you need a recent version of Chromium or Firefox with gamepad extension enabled you may find on http://webvr.info) I'm in the process of integrating the 3D models of both controllers. For instance: - HTC Vive Wand model: http://www.babylonjs-playground.com/#NCLFI - Left Touch: http://www.babylonjs-playground.com/#NCLFI#12 - Right Touch: http://www.babylonjs-playground.com/#NCLFI#13 I'd like to animate them by default when you'll press the trigger & the button to enhance immersion and provide you a default behavior that'll match most use cases. We still need to work on that with Raanan. I'm also experimenting turning Sponza in VR mode: http://aka.ms/sponzaVR . You can play with it if you've got a WebVR 1.1 device but beware, I'm still breaking it frequently. It also works on smartphone using Cardboard as we're falling back to VRDeviceOrientation camera in case of non WebVR support. VR for all!!! Regarding WebVR, it currently works in: - Edge Windows 10 Insider fast version that ships WebVR on by default. You can try it using the Mixed Reality Portal simulator: https://mixed.reality.news/news/try-windows-10s-mixed-reality-portal-your-pc-with-insider-build-15048-no-headset-required-0176419/ - Chromium with HTC Vive & Oculus Touch Stay tuned, we're continuing building great stuff you'd like. Cheers, David
  31. 10 points
    mouse_max

    My babylon js game

    Hello! I am making a step-by-step strategy game (like Fallout tactics, JA2) i uploaded demo on the site. You can test it now. i am working alone and it is my first experience with babylon engine. i am going to make online PvP battles (in the future), but now you can play with bots only. I made some levels and the boss in the end. Now you can: -run on the map, bots will run to you; -change the player (by clicking on the bottom icons); -shot the bots, kill bots (bots have simple ai and can kill you); -use 3 types of weapons (sword, gun and melee); -open the inventory, move items in the inventory; -finish your turn and see enemie's turn; -refresh browser window (server saves the state). -your players can hide in "invisible mode" (invisible icon located near the inventory icon) Some models do not have textures, it is ok. GUI is quite simple. AI is stupid now. (game is using php server for bot's AI calculatiuons, so you can't play offline) Thank you.
  32. 9 points
    Hey guys, My name is Mike and I'm from Korea. Me and 14 other guys are making a HTML5 MMORPG called "Mad World". Here's its trailer. And here's rain animation The game has all the familiar features of MMORPGs but the combat is more face-paced. It has hand-drawn artstyle like you see here. I will be posting some updates here from now on, and maybe some development tips we learn along the way. We want to be a pioneer in the area HTML5 in Korea which is still very new in the country. We want to make it available worldwide by the end of 2018, so we still have a long way to go. Any feedback is welcome by the way. Thanks and let me know what you think of the game! For more information on the game, you can visit our website: www.jandisoft.com or follow us on Facebook Twitter Youtube Here's the latest update We are throwing an in-game Halloween event next week from October 30th to November 1st. Anyone interested here's a link to the game. http://halloween.madworldmmo.com/ We will open the server during the event time. Hope we see you guys there. =) Here's a wip customization system,. Oh, and we recently opened a forum. Come by and say hello if you're interested. =)
  33. 9 points
    jodo

    Multiplayer Test with NullEngine()

    Hi Guys! I haven't been active here for quite some time and haven't done anything with Babylon.JS for quite a long time. But after checking out the changelogs, I saw that we can now run Babylon.js Server Side, how awesome is that! So I had to squeeze in some time and implement a proof of concept multiplayer simulation with Client and Server side physics engine. It's quite basic. The Client can control a ball by spinning it forward or backward (with W and S). By changing the camera angle (with A and D) you can change the direction of the impulse. With Space you can jump around. To check out how it behaves with multiple players you can either ask someone to also visit the site at the same time or just open a new tab in your browser. Technical it is rather simple. Server and Client communicate via Websockets. The client applies impulses to it's ball, these parameters for these impulses are sent to the server. The server applies these also and keeps the state for the whole world up to date. Each render loop the server sends the current state to all the clients (ideally 60 Hz). The clients then correct the position, direction and velocity of all objects including their own ball if needed. I haven't tried it out with higher delays, but I would suspect the result will be quite "jumpy". Interpolation for correction and prediction of movement is not (yet) implemented. Added Server Update Rate and Ping to see lags and delay in perspective to these metrics. Here is the code: https://github.com/j-o-d-o/multiplayer-babylon-js-game Here is the Demo: http://185.82.21.82:8700/ Here is a great article about Server-Client Game Networking techniques: http://www.gabrielgambetta.com/client-server-game-architecture.html which was somewhat the motivation to implement this proof of concept.
  34. 9 points
    satguru

    BabylonJS CharacterController

    A 3rd person character controller for BabylonJS source : https://github.com/ssatguru/BabylonJS-CharacterController docs: https://ssatguru.github.io/BabylonJS-CharacterController/ demo : https://ssatguru.github.io/BabylonJS-CharacterController/demo/ git download: https://github.com/ssatguru/BabylonJS-CharacterController/releases npm: https://www.npmjs.com/package/babylonjs-charactercontroller Originally developed as part of my Vishva project
  35. 9 points
    Deltakosh

    Please welcome the TransformNode

    I know this was a big ask from the community so I'm glad to announce that we finally support TransformNode! They are node with position / scaling / rotation like any mesh but without all the rendering. So they are just here to add transformation to a hierarchy. Example: https://www.babylonjs-playground.com/#JT0HN4 @JohnKsorry my friend because this could require some update to the doc (even if by itself everything will keep working the same as before)
  36. 9 points
    Check out my latest Space Shooter Demo Has html gui, multiple levels or waves, score count, hazard count, restart by keyboard or gamepad button and ENEMIES For Those who want take a look at the project details, all the code and assets... You gotta love the Unity Project Packaging. So here you go: Space Shooter Project Source
  37. 9 points
    DarkLight

    3D Web Constructor

    Hello all i want to present you my new project, It's a Web CAD (It will be in the future ) for the moment it's more a viewer. For the moment i am focusing to include the most common features of BabylonJs. Here a capture of the current state As you can see it allows to see the loaded object structure, in the tree you can hide or show or allow wireframe to the a specific object, in addition you have the global actions that will be applied for all meshes. The application also has a custom context menu Here the Prefab creation section Here what i call the compound objects Mode (CSG Balybon plugin) I implemented a 3D section mode also (Still contains some bugs ) For the moment the Import is hard coded i don't have yet a server side implementation, this is the next step. The toolbar contains some other options like remove, clone mirror a mesh, change camera views, and camera behavior on selection. Your feed backs are all welcome (Positive or negative), any ideas are welcome too. Here the link to the project on github you can try it your self https://darklight4070.github.io/3DWebConstructor/ And here the source code https://github.com/DarkLight4070/3DWebConstructor And thxs for this nice BabylonJs framework Regards DarkLight
  38. 9 points
    Hi, @Deltakosh and I were delivering several session during a big French event named Microsoft Experiences 17. We've done a couple of babylon.js related session. One of the most popular session is named Coding4Fun and I've created a small demo scene intro acting as the agenda of the session. You'll find it there: It uses our new GUI engine, some cool Post Processes like VLS/Godrays and so on. I've also composed the music for it. Thanks to @Stvsynrj who has created most of the awesome content used in this demo! During the same session, I've been building a fun WebVR experiement I'll share later on my on blog Enjoy! David
  39. 9 points
    troymius

    Rea3D

    Dear Babylon.js Team, I came across babylon.js in February of this year. After sticking with Python for 10+ years to satisfy my hobby and work needs, babylon made me say: that's it, I am learning javascript now :-) So after about 7 months of tinkering I just put my hobby website out there tonight (rea3d.com). I probably did everything possible wrong - I am sorry for all the terrible inefficiencies and clumsiness you may see on the page. There are only so many things one can absorb at around 10pm after a long work day :-) Consider it a work in progress and hopefully it will only get better :-) Anyway I wanted to thank you for creating babylon.js. It is 100% amazing. I wish something like this existed way back when I was in college and had all this free time :-) Thank you!!
  40. 9 points
    Hi beloved community, We're proud to announce that we've got a full support of the Windows Mixed Reality headsets AND Spatial Controllers in v3.1 : We even have very cool animation of the controllers to enhance immersion. We're also working on simplifying a lot the creation of WebVR experiences in Babylon.js via the VRHelper. Stay tuned. But using only 2 lines of code, we will soon be able to cover 80% of use cases David
  41. 9 points
    renjianfeng

    A zombie FPS game demo

    Hi~ I'm from Hangzhou, China. I wrote a FPS game with babylonjs, but there are still many things to do. I uploaded some complete code to GitHub, and if you're interested, you can always download it, and I'll synchronize the latest code with GitHub in time github url:https://github.com/renjianfeng/BabylonFpsDemo (click Star) github.io url:https://renjianfeng.github.io/BabylonFpsDemo/example/index.html (Thinks satguru) Also, please remember to bring your headphones and enjoy the perfect sound effects. (at least I think so.) Some screenshots
  42. 9 points
    jerome

    Dynamic Terrain

    Hi folks, Maybe some of you followed this topic for while : Well, now I'm proud to announce the fully documented first release of the Dynamic Terrain Extension : https://github.com/BabylonJS/Extensions/tree/master/DynamicTerrain Its documentation is one the same repo : https://github.com/BabylonJS/Extensions/blob/master/DynamicTerrain/documentation/dynamicTerrainDocumentation.md Have fun Some more demos and features to come
  43. 9 points
    Sebavan

    PBR Breaking Changes

    Hello, After one year of the PBR Material, we collected most of the required feedback to make it Awesome. But unfortunately, this will go with some breaking changes.. I am really not happy to integrate them but they are for the best and I will fully document them. Knowing our backward compatibility Philosophy in BJS, I just want to give a long time ahead with our plan to ensure this will cause the lowest level of disruption on your projects. Strikeout tasks have been completed. First thing, is the migration of the current PBRMaterial in MaterialsLibrary under the name LegacyPBRMaterial to ensure that the ones among you relying on it can continue to find the current version as of today. This will not be fully maintained but mainly keep for reference during the time everybody migrates to the newer/greater one. Only urgent fixes will be addressed on it. As nobody seems to rely on them, the overloaded values used for debug but taking quite a big amount of code will be removed from the material. All the scalar values will be multiply by their respective maps like albedoColor * albedoTexureSampled (currently it is totally inconsistent and depends of the channel) The different channels will be renamed to map with the GLTF nomenclature (At least I will not have anymore issues in naming :-) ) to allow an easier adoption of BJS and less ramp up for everybody. For example, the material microsurface will be named back to glossiness and reflectivity to specular... All the Maths issues and bugs presents in the material will be fixed. The environment blur will be fixed through offline and/or loadtime GPU generation. (This should be compatible with browser not supporting both FullFloat and Texture LOD) A migration from full float to LUV is in our minds for the environment to allow the use of none full float buffers with HDR compatibility. UBO, Push Mode and the full sets of greatest new features will be added to the new version. A new light type will be created to ensure an easier management of the intensity value in PBR mode. I should not forget a lot here and I hope you understand the future change. This is planned to happen during this month so do not hesitate if you have any feedback, think about any blockers or other evolution you would like to see in. As a consolation gift for the breaking change, I can propose to add the pbr exporter in 3dsMax or blender ?
  44. 9 points
    Deltakosh

    New Gui in Babylon

    hehe:) good catch ! This is my new project. The plan is to provide an alternative to Canvas2D. The main difference is that Canvas2D is full GPU oriented (text constructrion, animations, etc..) while Babylon.GUI is CPU based (it is an extension of the DynamicTexture) While it could be seen as a less performant aproach, it is also more flexible. It support alignment, margin, events. Controls are: Textblock, Button, Image, Container It is still under heavy working. Documentation will be soon available with samples.
  45. 9 points
  46. 9 points
    Numa

    JigSpace

    Hi there, I thought I'd share what we've been working on. JigSpace is a platform for creating and sharing 3D, step by step instruction for anything. Kind of a 3D powerpoint! To create these instructions we have a very simple web editor based on Unity, and for viewing them we use Babylon. It works on computers and phones but also in VR and AR (we have dedicated apps for android/ios/oculus/hololens) Here's a link to our library: https://jig.space/explore.html We decided to use Babylon for speed and portability and it has been fantastic. It's a young engine so of course we ran into hurdles along the way but always received great help from the community. Let me know what you think!
  47. 9 points
    MackeyK24

    New Terrain Splatmap Material

    New Terrain Splatmap Material (Based Off BABYLON.TerrainMaterial)... Supports up to 4 splatmaps using up to 12 textures for terrain painting. The new splatmapMateral.ts will be added to the the babylon Materials Library soon but check out how i am using it for native terrain support using the U3D BabylonJS Toolkit. [UPDATE] Sorry, but you will NEED the toolkit to use the new BABYLON.SplatmapMaterial... I had to move the splatmatting into my Scene Manager API available on BabylonJS/Extensions. The way i use splatmaps now hook into the native shader pipeline and pick up (or make available) all the standard PBR features plus all the ShaderMaterial features, plus Scene Component Life-Cycle... I then automatically generates all the splatmaps from the actual terrain data... All the code will be available ... Just NOT as a materialLibrary (although i guess i could make a lightweight version for manual usage.) U3D - BabylonJS Toolkit: Terrain Splatmap Material Overview Hey @Deltakosh , @Sebavan , @davrous , @RaananW , @Dad72 , @MrVR ... Hey guys please check this out... I am pretty proud of this... Its my FIRST venture into the low level shader parts (using the terrainMaterial.ts as a guide)... But i think it turned out beautifully
  48. 9 points
    NasimiAsl

    Galaxy with 360.000 star

    Galaxy with 360.000 star http://www.babylonjs-playground.com/#1QC9DP#96
  49. 8 points
    Lynxerious

    Overbount - A multiplayer shooter

    Hello, this is a project for my college. It's a simple multiplayer game building with Babylon.js 3.0 and Matterjs. http://overbount.me I hope you enjoy it. Use W A S D to move and left click to shoot. (There might be some lag issue) Thank you.
  50. 8 points
    jerome

    New Feature : AddRotation()

    Hi people, I'm about to implement a new useful feature to the core. For now, it's called addRotation(). What is it for ? Well, usually the BJS users aren't big fans of quaternions to manage their mesh rotations, although the quaternions are the best tools to achieve it. Quaternion aren't intuitive, so people prefer the Euler angles, right ? Moreover BJS imposes the rotation order, what is, if I'm not wrong, YXZ. This means that, when you set a mesh rotation (x, y, z), it is rotated first around Y, then around X and finally around Z in its local space. This is important because the rotation is not commutative : if you rotate a mesh for, say, 30° around Y and then for 20° around X, you won't get the same final orientation than if you rotate it first for 20° around X and then only for 30° around Y. In brief, the rotation order really matters ! So, you want to use only the Euler angles and you are constrained by the engine rotation order : no surprise you can hardly achieve the rotation you really want. Here's comes addRotation(x, y, z) to the rescue ! addRotation() will do 3 things for you : - to let you use only Euler angles, whatever the internal mesh rotation is Euler or quaternion based (note : under the hood, addRotation() works with quaternions, but it's hidden for your convenience) - to allow you to decompose your rotation by steps in your custom order to achieve your final orientation : you can rotate a mesh first around X, then around Y, then around X again, then around Z, etc. - to update the initial mesh rotation values for you : if the rotation is Euler based, it's updated as Euler angles (mesh.rotation), if it's a quaternionRotation (mesh.rotationQuaternion), the quaternion is updated. How does it work ? Just give the mesh an initial rotation, or none, (this rotation can be Euler angles or a quaternion, as you want), then add your rotation steps to achieve the wanted final orientation : mesh.rotation.x = Math.PI / 4.0; // initial rotation around x mesh.addRotation(0, Math.PI / 3.0, 0); // the mesh is fisrt rotated around X, then only around Y for PI/3 // you can even link all the rotation steps // here X first, then Z, finally Y mesh.addRotation(x1, 0, 0).addRotation(0, 0, z2).addRotation(0, y3, 0); // the mesh rotation property is computed for you console.log(mesh.rotation); First demo :http://www.babylonjs-playground.com/#1PON40 The left box is the model box. The central box is rotated as usual for PI/3 around X and PI/2 around Y. The BJS rotation order makes it rotate first around Y, then around X. The right box is given an initial rotation for PI/3 around X, then a rotation step is added for PI/2 around Y. You can see that the final orientation differs. If you have a look at the console where the box2 rotation is displayed : http://www.babylonjs-playground.com/#1PON40#1 you will notice that the Euler angles needed to achieve this final orientation have a z value, although you didn't specify anything about Z. Simply because this is the Euler rotation to be done in the required BJS rotation order to achieve this final orientation. Something you wouldn't probably have found by yourself just playing with Euler angles ... Let's go further with the torus wheel challenge. Remember the number of times that, in this forum, people tried out to use the BJS provided shape called torus and to use it as a car wheel. It's damned complex because the torus is designed horizontally in its local space and we need to make rotate either around its central axis (rolling), either around a vertical axis (wheel direction). So some head hache with quaternions or mesh.rotate() once in the local space, once in the world space. Let's try an easier way. Here's the just born torus : http://www.babylonjs-playground.com/#1PON40#2 Let's set it vertical as an initial rotation around Z : http://www.babylonjs-playground.com/#1PON40#3 Too bad the method debugLayer.shouldDisplayAxis() doesn't currently display anything, just keep in mind the torus local axis at this step : Y is the torus central axis (so now horizontal after this first rotation around Z) X is, now the torus is vertical, the vertical axis, Z keeps unchanged along the world Z axis. So in order to make the wheel roll, we will give each frame, from this initial rotation, an extra rotation around X first (wheel direction) and then a rotation around the torus central axis Y http://www.babylonjs-playground.com/#1PON40#4 As you can see, the code is quite short and intuitive : I don't know the BJS required rotation, but I know how to set my torus orientation step by step using only Euler angles. No need for quaternion or space switching here. I just "build" each frame the way to achieve the final rotation with my own rotation steps and my own order. Then it's quite easy to animate car wheels : http://www.babylonjs-playground.com/#1PON40#5 Have fun