The ThreeJS scene may run smoothly at 60 frames per second, but it maxes out my fans and crashes after

Recently, I delved into the world of threeJS and decided to test my skills by using this example:

After exporting some terrain from blender and replacing the platform.json file, my scene was running smoothly at 55-60fps. However, as time went on, my computer's fans began to get louder and louder until the page eventually stopped responding. This was unexpected as my computer has decent specs.

Upon checking the rendererstats.js, I found that my scene consisted of 23k vertices and 7k faces. Attempting to reduce this count did not solve the issue. After doing some research and experimentation, I realized that even the original demo (linked above) had the same effect on my computer.

I am puzzled by what could be causing this problem with the demo. Any insights or potential fixes would be greatly appreciated as I try to solve this issue.

Answer №1

Everything appears to be operating correctly in the demo. Although I'm not sure where the issue lies, I can offer some insights.

Typically, a web browser does not require a dedicated graphics card to function. However, when a tab using WebGL is opened, it may call upon hardware acceleration which could trigger the fan to turn on, irrespective of the specific requirements of the WebGL application. This is more of a hardware or firmware issue. I encountered a similar situation in the past, only to discover that my laptop was faulty.

To troubleshoot, I recommend ruling out potential causes. Conduct a GPU benchmark or test other graphics-intensive applications (such as games) to see if similar problems persist. If not, focus on investigating the WebGL aspect. Experiment with different browsers for this demo, as well as other WebGL applications, to determine if the issue is specific to Three.js apps, WebGL in general, or unique to this particular demo.

  • If the problem persists across all browsers and applications, it may indicate a deeper underlying issue with your system configuration that is beyond my expertise.
  • If the problem is isolated to this demo regardless of the browser used, while other apps function properly, the issue likely lies in the interaction between WebGL, GLSL functions, and your graphics card. Consider reaching out to the WebGL development community and graphics card manufacturers for further guidance.
  • If the problem only occurs in a single browser, it could be related to the browser settings or the browser itself. Reinstalling the browser or contacting the developers for assistance may help resolve the issue.
  • If the issue is specific to one browser and this demo, it indicates a problem specific to the browser and Three.js. Conduct a more in-depth benchmark of the demo and consider reaching out to the Three.js developers for support.

Apologies if this response is lengthy, but it exceeded the character limit for a comment.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Reduce the text of the link

Trying to simplify a task, but I'm struggling with the solution. What I want to achieve is shortening a link to 30 characters and adding ... at the end if it's longer. Also, I'd like to make it possible to see the full link on hover similar ...

Generating fresh line with knockout effect

Currently in the process of developing a Single Page Application (SPA). Utilizing knockout and observable array to iterate through a json array. Encountering an issue where there are br tags present within the text, but when using data-bind="text: myVar" ...

Replace the checkbox display heading with a text box in the designated area

I'm new to using kendo ui Currently, I am attempting to show a text box in the first column header. Instead of the checkboxDisplay heading, I want to replace it with a text box. Could someone please provide guidance on how to resolve this issue? Here ...

What is the best way to change the state of an Object?

I need to dynamically adjust the internalstatus based on the values of externalValues. If valueOne is true, then I want statusOne to be true. Similarly, if valueTwo is true, I want statusTwo to be true and statusOne to be false. const externalValues = { v ...

Updating an array of key/value pairs in Mongoose: A step-by-step guide

Context: I am dealing with an array of objects retrieved from Vue Axios. These objects contain key-value pairs and are stored in the req.body. Request Body: keyValue: [{key:"some key", value:"some value"}, {key:"some key2", value:"some value2"}] Import ...

What is the best way to choose an Animatedmodal that can showcase various demos while using just one ID?

I am currently customizing my website and utilizing the AnimatedModal.js framework. I have successfully displayed content in one modal, but encountered difficulty when attempting to create multiple modals as they all share the same ID. My question is, how ...

Handling Pop-up Windows in Puppeteer using NodeJS

During my training exercises, I encountered a situation where I needed to click on a button that opens an internal "pop-up" from a specific page on Amazon. Unfortunately, Puppeteer was unable to detect this pop-up, making it difficult for me to interact wi ...

Unlocking the full potential of Three.js: A guide to leveraging InstancedBufferGeometry and InstancedBufferAttribute

It seems that the concept of "instancing" allows for a single attribute to be applied to all the vertices/indices of a model with 200 vertices. This means that instead of needing separate attributes for each vertex, only one attribute would be required for ...

Manage and maintain database structure with synchronization capabilities

I am tasked with creating a web application that can function offline using Local Storage or IndexedDB. Currently, my server has schema v2 which includes additions such as new tables or fields, while my local app is using schema v1. I am looking for a so ...

Encountering connectivity issues with MongoDB client and struggling to insert data while utilizing promises

Currently, I am experimenting with nodeJS and encountering an error when trying to establish a connection to the MongoDB Client. I have implemented promises for improved readability but am facing issues connecting. The code involves connecting to the datab ...

Learn the step-by-step process of clicking on a button to modify its properties and deactivate it

I could really use some assistance. I'm trying to make a button: <v-btn dark color="primary" class="square">Tile 1</v-btn> Is there a way I can modify it so that when clicked, it changes to flat, becomes disabled, and switches its color ...

Tips for sending multiple values to a jquery dialog box

I am seeking assistance with passing multiple values to a jQuery dialog box and displaying them in a table within the dialog box... The HTML content is being rendered in the dialog box through an AJAX call. Here is my AJAX call: $.get(url, function (dat ...

The functionality of `req.isAuthenticated()` is never true when using PassportJs with a combination of nodeJS and dynam

I am entering the world of web programming and tasked with creating an Instagram-like platform for my school. The frontend is built in ReactJS and now it's time to develop a server in nodeJS, utilizing passport for authentication and dynamoDb for data ...

Converting time from 00:00:01 to a format of 8 minutes and 49 seconds in Angular

Is there a way to transform a time value from 00:00:01 (not a date object) into a format showing 8 minutes and 49 seconds? Even after consulting the Angular 'date pipe' documentation, I couldn't find a solution to this issue. ...

Conditional jQuery actions based on the selected radio button - utilizing if/else statements

This task seemed simple at first, but I quickly realized it's more challenging than expected. Apologies in advance, as Javascript is not my strong suit. My goal is to have the main button (Get Your New Rate) perform different actions based on whether ...

A guide on retrieving the selected option from a dropdown menu with React Material UI

Utilizing Material UI React, I am constructing a dropdown menu containing various options. My concern is: if I choose two options from different dropdowns within the menu, how can I intercept or store which option was selected? Below is a snippet of my co ...

Leveraging personalized AngularJS directives in conjunction with ExpressJS routing

I built my own AngularJS application following a tutorial at . However, I encountered an issue when trying to integrate it with an ExpressJS/Node backend. The tutorial only covers a single view with a single controller, while my Angular app includes multip ...

Tips for Customizing the Width of Your Material UI Alert Bar

At the moment, I have refrained from using any additional styling or .css files on my webpage. The width of the Alert element currently spans across the entire page. Despite my attempts to specify the width in the code snippet below, no noticeable change ...

Populate the AngularJS scope with a dynamically generated array

My Angular Application is functioning properly with <script> var app = angular.module('MyApp', []); app.controller('myCtrl', function ($scope, $sce) { $scope.urls = [ { "url": $sce.t ...

What is the best way to view and use the data stored within this JSON object?

Obtaining information from a straightforward API (). I retrieve the data using getJSON: var police = $.getJSON(queryurl); A console.log on police displays this: https://i.sstatic.net/Kjyz8.png However, I am unable to access the properties within the o ...