Tag: 上海419龙凤后花园

ybiarlxb

Researchers print solar cells on toilet paper other delicate materials w Video

first_img Karen Gleason, a chemical engineering professor at MIT, along with graduate student Miles Barr and others, showed that the technique could be used to print solar cells on a variety of delicate materials. One example is rice paper, which is used to make spring rolls in restaurants and usually dissolves in wet processes. Since the researchers’ technique is a dry, solvent-free process, the rice paper remains intact. The researchers also demonstrated the technique on plastic Saran wrap, which repels water and would normally be difficult to coat.The new method, called oxidative chemical vapor deposition (oCVD), involves spraying a vapor of a monomer and an oxidizing agent onto a substrate. The monomer and oxidizing agent polymerize when they meet and form PEDOT plastic. The plastic itself is conductive, but the conductivity can be further increased up to 1,000 times by controlling the substrate temperature so that small nanopores form, which can be laced with highly conductive silver particles.The printed solar cells can also withstand a great deal of bending and stretching with minimal effect on their properties. In tests, the researchers bent a printed plastic substrate to a radius of less than 5 mm more than 1,000 times, and found that its efficiency was still 99% of what is was before bending. The electrodes could also be bent and stretched, and still retained their conductivity. To further demonstrate the method’s robustness, Barr folded a piece of paper printed with solar cells into a paper airplane, and showed that the device still generated a current.MIT Professor Karen K. Gleason explains how graduate student Miles Barr folds a solar cell into a paper airplane. The research is part of the Eni-MIT Solar Frontiers Center. Video credit: MIT.As the researchers noted, paper is not typically considered a good substrate for photovoltaics because it’s not transparent. However, the ability to print solar cells at low-cost on flexible, stretchable materials could be very useful for making solar cells more widespread. Since the technique can also be used to print other electronic devices besides solar cells, it could be used for novel applications such as printing electronics on fabric and other flexible displays. To demonstrate how a new fabrication technique can print solar cells on extremely thin, flexible materials, researchers from MIT have patterned solar cells onto ordinary toilet paper. While toilet paper may be an unlikely substrate for practical solar cell applications, it illustrates the versatility of the technique for low-cost printing on a wide variety of materials. Explore further Xerox Develops Silver Ink for Cheap Printable Electronics After printing solar cells on a piece of paper, researchers folded the paper into an airplane to demonstrate that it could still generate current. Image credit: Karen Gleason, MIT. More information: via: IEEE Spectrum © 2010 PhysOrg.com Citation: Researchers print solar cells on toilet paper, other delicate materials (w/ Video) (2011, January 4) retrieved 18 August 2019 from https://phys.org/news/2011-01-solar-cells-toilet-paper-delicate.html This document is subject to copyright. Apart from any fair dealing for the purpose of private study or research, no part may be reproduced without the written permission. The content is provided for information purposes only.last_img read more

CONTINUE READING
thlqtbot

St Xaviers University mulls setting up sports management academy

first_imgKolkata: St. Xavier’s University is planning to set up a Sports Management Academy for various academic courses on sports and also some short term training programmes in this field. University authorities will soon write a letter to Chief Minister Mamata Banerjee urging her to allot a piece of land, measuring around 10 acres near the second campus of the university in New Town.Father Felix Raj, Vice-Chancellor of St Xavier’s University said: “We have a plan to set up a sports management academy in the city for which we would soon write to the Chief Minister requesting her for a piece of land. It would require a 10-acre of land for constructing a full-fledged sports management academy.” Also Read – Heavy rain hits traffic, flightsStressing the need of a sports management academy, he said proposed academy would offer various undergraduate and post-graduate courses on sports management. It would also impart training on physical education. This is a unique initiative taken by the premier institution. This is probably for the first time that a private institution is coming up with an idea of constructing a sports management academy. It may be mentioned that the State government had allotted a plot of 17-acre in New Town where the second campus of the university has come up. Also Read – Speeding Jaguar crashes into Merc, 2 B’deshi bystanders killedSt Xavier’s University will start MBA course at the Xavier Business School (XBS) under the university on its New Town campus from August this year. It has already obtained approval from All India Council of Technical Education (AICTE). It will be a full time residential course, offering specialisations in Marketing, Finance, Human Resources and Systems & Operations. The permission has been given for two sections with sixty students each. The state-of-the-art, smart and air-conditioned class rooms and amphitheaters are ready. The process of enrolment for the candidates has already begun. The institution is also going to start five new undergraduate courses including Bachelor of Management Studies, BA (Hons) in English, BA (Hons) in Mass communication, BA (Hons) in Economics, BCom Hons. The post-graduate degree courses which will be introduced this year are MCom, MA in Mass Communication, MA in English, MA in Economics, Master of Social Work and MBA.There is also a plan to set up a community college where six month certificate courses and one year diploma programmes will be run in the vocations. As a part of ‘Vision 2025 of St Xavier’s University,’ a law school will also be set up on New Town campus.last_img read more

CONTINUE READING
ogyhkefr

Popular Music became angrier sadder over time

first_imgPopular music has gradually become angrier and sadder over time, and the expression of joy has declined, a study has found. While music fans preferred joyful songs during the 1950s, modern music consumers are more interested in songs that express sadness or anger, researchers said. Data scientists at Lawrence Technological University in the US used quantitative analytics to study the change in lyrics of popular music over seven decades, from the 1950s to 2016. Also Read – Add new books to your shelf”The change in lyrics sentiments does not necessarily reflect what the musicians and songwriters wanted to express, but is more related to what music consumers wanted to listen to in each year,” said Lior Shamir, from Lawrence Technological University. Research analysed the lyrics of over 6,000 songs of the ‘Billboard Hot 100’ in each year. In the past the songs were ranked mainly by record sales, radio broadcasting, and jukebox plays, but in the more recent years it is based on several other popularity indicators such as streaming and social media to reflect the changes in music consumption. Also Read – Over 2 hours screen time daily will make your kids impulsiveThe tones expressed in each song were analysed by applying automatic quantitative sentiment analysis. Automatic sentiment analysis associates each word or phrase in the song with a set of tones that they express. The combination of the tones expressed by all words and phrases of the lyrics determines the sentiment of that song. The sentiments of all Billboard Hot 100 songs in each year are averaged, and the average of each year allows to measure whether the expression of that sentiment increased, decreased, or remained constant. The analysis showed that the expression of anger in popular music lyrics has increased gradually over time. Songs released during the mid 1950s were the least angry, and the anger expressed in lyrics has increased gradually until peaking in 2015. The analysis also revealed some variations. Songs released in the three years of 1982-1984 were less angry compared to any other period, except for the 1950s. In the mid 1990s, songs became angrier, and the increase in anger was sharper during that time in comparison to previous years. The expression of sadness, disgust and fear also increased over time, although the increase was milder compared to the increase in the expression of anger. Disgust increased gradually, but was lower in the early 1980s and higher in the mid and late 1990s. Popular music lyrics expressed more fear during the mid 1980s, and the fear decreased sharply in 1988. Another sharp increase in fear was observed in 1998 and 1999, with a sharp decrease in 2000. The study also showed that joy was a dominant tone in popular music lyrics during the late 1950s, but it decreased over time and became much milder in the recent years.last_img read more

CONTINUE READING
zjqfopfy

Building VR experiences with React VR 20 How to create maze thats

first_imgIn today’s tutorial, we will examine the functionality required to build a simple maze. There are a few ways we could build a maze. The most straightforward way would be to fire up our 3D modeler package (say, Blender) and create a labyrinth out of polygons. This would work fine and could be very detailed.However, it would also be very boring. Why? The first time we get through the maze will be exciting, but after a few tries, you’ll know the way through. When we construct VR experiences, you usually want people to visit often and have fun every time.This tutorial is an excerpt from a book written by John Gwinner titled Getting Started with React VR. In this book, you will learn how to create amazing 360 and virtual reality content that runs directly in your browsers.A modeled labyrinth would be boring. Life is too short to do boring things. So, we want to generate a Maze randomly. This way, you can change the Maze every time so that it’ll be fresh and different. The way to do that is through random numbers to ensure that the Maze doesn’t shift around us, so we want to actually do it with pseudo-random numbers. To start doing that, we’ll need a basic application created. Please go to your VR directory and create an application called ‘WalkInAMaze’:react-vr init WalkInAMazeAlmost random–pseudo random number generatorsTo have a chance of replaying value or being able to compare scores between people, we really need a pseudo-random number generator. The basic JavaScript Math.random() is not a pseudo-random generator; it really gives you a totally random number every time. We need a pseudo-random number generator that takes a seed value. If you give the same seed to the random number generator, it will generate the same sequence of random numbers. (They aren’t completely random but are very close.) Random number generators are a complex topic; for example, they are used in cryptography, and if your random number generator isn’t completely random, someone could break your code.We aren’t so worried about that, we just want repeatability. Although the UI for this may be a bit beyond the scope of this book, creating the Maze in a way that clicking on Refresh won’t generate a totally different Maze is really a good thing and will avoid frustration on the part of the user. This will also allow two users to compare scores; we could persist a board number for the Maze and show this. This may be out of scope for our book; however, having a predictable Maze will help immensely during development. If it wasn’t for this, you might get lost while working on your world. (Well, probably not, but it makes testing easier.)Including library code from other projectsUp to this point, I’ve shown you how to create components in React VR (or React). JavaScript interestingly has a historical issue with include. With C++, Java, or C#, you can include a file in another file or make a reference to a file in a project. After doing that, everything in those other files, such as functions, classes, and global properties (variables), are then usable from the file that you’ve issued the include statement in.With a browser, the concept of “including” JavaScript is a little different. With Node.js, we use package.json to indicate what packages we need. To bring those packages into our code, we will use the following syntax in your .js files:var MersenneTwister = require(‘mersenne-twister’);Then, instead of using Math.random(), we will create a new random number generator and pass a seed, as follows: var rng = new MersenneTwister(this.props.Seed);From this point on, you just call rng.random() instead of Math.random().We can just use npm install and the require statement for properly formatted packages. Much of this can be done for you by executing the npm command:npm install mersenne-twister –saveRemember, the –save command to update our manifest in the project. While we are at it, we can install another package we’ll need later:npm install react-vr-gaze-button –saveNow that we have a good random number generator, let’s use it to complicate our world.The Maze render()How do we build a Maze? I wanted to develop some code that dynamically generates the Maze; anyone could model it in a package, but a VR world should be living. Having code that can dynamically build Maze in any size (to a point) will allow a repeat playing of your world.There are a number of JavaScript packages out there for printing mazes. I took one that seemed to be everywhere, in the public domain, on GitHub and modified it for HTML. This app consists of two parts: Maze.html and makeMaze.JS. Neither is React, but it is JavaScript. It works fairly well, although the numbers don’t really represent exactly how wide it is.First, I made sure that only one x was displaying, both vertically and horizontally. This will not print well (lines are usually taller than wide), but we are building a virtually real Maze, not a paper Maze.The Maze that we generate with the files at Maze.html (localhost:8081/vr/maze.html) and the JavaScript file—makeMaze.js—will now look like this:x1xxxxxxxx x xxxx x x xx x x xx xxxxx xx x x xx x x x xx x 2xxxxxxxxxIt is a little hard to read, but you can count the squares vs. xs. Don’t worry, it’s going to look a lot fancier. Now that we have the HTML version of a Maze working, we’ll start building the hedges.This is a slightly larger piece of code than I expected, so I broke it into pieces and loaded the Maze object onto GitHub rather than pasting the entire code here, as it’s long. You can find a link for the source at: http://bit.ly/VR_Chap11Adding the floors and type checkingOne of the things that look odd with a 360 Pano background, as we’ve talked about before, is that you can seem to “float” against the ground. One fix, other than fixing the original image, is to simply add a floor. This is what we did with the Space Gallery, and it looks pretty good as we were assuming we were floating in space anyway.For this version, let’s import a ground square. We could use a large square that would encompass the entire Maze; we’d then have to resize it if the size of the Maze changes. I decided to use a smaller cube and alter it so that it’s “underneath” every cell of the Maze. This would allow us some leeway in the future to rotate the squares for worn paths, water traps, or whatever.To make the floor, we will use a simple cube object that I altered slightly and is UV mapped. I used Blender for this. We also import a Hedge model, and a Gem, which will represent where we can teleport to. Inside ‘Maze.js‘ we added the following code:import Hedge from ‘./Hedge.js’;import Floor from ‘./Hedge.js’;import Gem from ‘./Gem.js’;Then, inside the Maze.js we could instantiate our floor with the code:Notice that we don’t use ‘vr/components/Hedge.js‘ when we do the import; we’re inside Maze.js. However, in index.vr.js to include the Maze, we do need:import Maze from ‘./vr/components/Maze.js’;It’s slightly more complicated though. In our code, the Maze builds the data structures when props have changed; when moving, if the maze needs rendering again, it simply loops through the data structure and builds a collection (mazeHedges) with all of the floors, teleport targets, and hedges in it. Given this, to create the floors, the line in Maze.js is actually: mazeHedges.push();Here is where I ran into two big problems, and I’ll show you what happened so that you can avoid these issues. Initially, I was bashing my head against the wall trying to figure out why my floors looked like hedges. This one is pretty easy—we imported Floor from the Hedge.js file. The floors will look like hedges (did you notice this in my preceding code? If so, I did this on purpose as a learning experience. Honest).This is an easy fix. Make sure that you code import Floor from ‘./floor.js’; note that Floor not type-checked. (It is, after all, JavaScript.) I thought this was odd, as the hedge.js file exports a Hedge object, not a Floor object, but be aware you can rename the objects as you import them.The second problem I had was more of a simple goof that is easy to occur if you aren’t really thinking in React. You may run into this. JavaScript is a lovely language, but sometimes I miss a strongly typed language. Here is what I did:Inside the maze.js file, I had code like this:for (var j = 0; j After some debugging, I found out that the value of j was going from 0 to 42. Why did it get 42 instead of 6? The reason was simple. We need to fully understand JavaScript to program complex apps. The mistake was in initializing SizeX to be ‘4’ ; this makes it a string variable. When calculating j from 0 (an integer), React/JavaScript takes 2, adds it to a string of ‘4’, and gets the 42 string, then converts it to an integer and assigns this to j.When this is done, very weird things happened.When we were building the Space Gallery, we could easily use the ‘5.1’ values for the input to the box:Then, later use the transform statement below inside the class: transform: [ { translate: [ this.props.MyX, -1.7, this.props.MyZ] } ]React/JavaScript will put the string values into This.Props.MyX, then realize it needs an integer, and then quietly do the conversion. However, when you get more complicated objects, such as our Maze generation, you won’t get away with this.Remember that your code isn’t “really” JavaScript. It’s processed. At the heart, this processing is fairly simple, but the implications can be a killer.Pay attention to what you code. With a loosely typed language such as JavaScript, with React on top, any mistakes you make will be quietly converted to something you didn’t intend.You are the programmer. Program correctly.So, back to the Maze. The Hedge and Floor are straightforward copies of the initial Gem code. Let’s take a look at our starting Gem, although note it gets a lot more complicated later (and in your source files):import React, { Component } from ‘react’;import { asset, Box, Model, Text, View} from ‘react-vr’;export default class Gem extends Component {constructor() {super();this.state = {Height: -3 };}render() {return ();}}CopyThe Hedge and Floor are essentially the same thing. (We could have made a prop be the file loaded, but we want a different behavior for the Gem, so we will edit this file extensively.)To run this sample, first, we should have created a directory as you have before, called WalkInAMaze. Once you do this, download the files from the Git source for this part of the article (http://bit.ly/VR_Chap11). Once you’ve created the app, copied the files, and fired it up, (go to the WalkInAMaze directory and type npm start), and you should see something like this once you look around – except, there is a bug. This is what the maze should look like (if you use the file  ‘MazeHedges2DoubleSided.gltf‘ in Hedge.js, in the statement):>Now, how did we get those neat-looking hedges in the game? (OK, they are pretty low poly, but it is still pushing it.) One of the nice things about the pace of improvement on web standards is their new features. Instead of just .obj file format, React VR now has the capability to load glTF files.Using the glTF file format for modelsglTF files are a new file format that works pretty naturally with WebGL. There are exporters for many different CAD packages. The reason I like glTF files is that getting a proper export is fairly straightforward. Lightwave OBJ files are an industry standard, but in the case of React, not all of the options are imported. One major one is transparency. The OBJ file format allows that, but at of the time of writing this book, it wasn’t an option. Many other graphics shaders that modern hardware can handle can’t be described with the OBJ file format.This is why glTF files are the next best alternative for WebVR. It is a modern and evolving format, and work is being done to enhance the capabilities and make a fairly good match between what WebGL can display and what glTF can export.This is however on interacting with the world, so I’ll give a brief mention on how to export glTF files and provide the objects, especially the Hedge, as glTF models.The nice thing with glTF from the modeling side is that if you use their material specifications, for example, for Blender, then you don’t have to worry that the export won’t be quite right. Today’s physically Based Rendering (PBR) tends to use the metallic/roughness model, and these import better than trying to figure out how to convert PBR materials into the OBJ file’s specular lighting model. Here is the metallic-looking Gem that I’m using as the gaze point:Using the glTF Metallic Roughness model, we can assign the texture maps that programs, such as Substance Designer, calculate and import easily. The resulting figures look metallic where they are supposed to be metallic and dull where the paint still holds on.I didn’t use Ambient Occlusion here, as this is a very convex model; something with more surface depressions would look fantastic with Ambient Occlusion. It would also look great with architectural models, for example, furniture.To convert your models, there is user documentation at http://bit.ly/glTFExporting. You will need to download and install the Blender glTF exporter. Or, you can just download the files I have already converted. If you do the export, in brief, you do the following steps:Download the files from http://bit.ly/gLTFFiles. You will need the gltf2_Principled.blend file, assuming that you are on a newer version of Blender.In Blender, open your file, then link to the new materials. Go to File->Link, then choose the gltf2_Principled.blend file. Once you do that, drill into “NodeTree” and choose either glTF Metallic Roughness (for metal), or glTF specular glossiness for other materials.Choose the object you are going to export; make sure that you choose the Cycles renderer.Open the Node Editor in a window. Scroll down to the bottom of the Node Editor window, and make sure that the box Use Nodes is checked.Add the node via the nodal menu, Add->Group->glTF Specular Glossiness or Metallic Roughness.Once the node is added, go to Add->Texture->Image texture. Add as many image textures as you have image maps, then wire them up. You should end up with something similar to this diagram.To export the models, I recommend that you disable camera export and combine the buffers unless you think you will be exporting several models that share geometry or materials. The Export options I used are as follows:Now, to include the exported glTF object, use the component as you would with an OBJ file, except you have no MTL file. The materials are all described inside the .glTF file. To include the exported glTF object, you just put the filename as a gltf2 prop in the : To find out more about these options and processes, you can go to the glTF export web site. This site also includes tutorials on major CAD packages and the all-important glTF shaders (for example, the Blender model I showed earlier).I have loaded several .OBJ files and .glTF files so you can experiment with different combinations of low poly and transparency. When glTF support was added in React VR version 2.0.0, I was very excited as transparency maps are very important for a lot of VR models, especially vegetation; just like our hedges. However, it turns out there is a bug in WebGL or three.js that does not render the transparency properly. As a result, I have gone with a low polygon version in the files on the GitHub site; the pictures, above, were with the file MazeHedges2DoubleSided.gltf in the Hedges.js file (in vr/components).If you get 404 errors, check the paths in the glTF file. It depends on which exporter you use—if you are working with Blender, the gltf2 exporter from the Khronos group calculates the path correctly, but the one from Kupoman has options, and you could export the wrong paths.We discussed important mechanics of props, state, and events. We also discussed how to create a maze using pseudo-random number generators to make sure that our props and state didn’t change chaotically.To know more about how to create, move around in, and make worlds react to us in a Virtual Reality world, including basic teleport mechanics, do check out this book Getting Started with React VR. Read More:Google Daydream powered Lenovo Mirage solo hits the marketGoogle open sources Seurat to bring high precision graphics to Mobile VROculus Go, the first stand alone VR headset arrives!last_img read more

CONTINUE READING