PeterJohnNumPyMatplotlib
Python IDE + NumPy Matplotlib
Only for iPhone
USD 14.99 · Designed for iPhone. Not verified for macOS.
Now PeterJohn, a Python Interpreter which Runs on iPhone,
Acquired Two Major Modules, NumPy and Matplotlib.
they will help you to study
DataScience, DeepLearning, ReinforcementLearning.
it's like King Jesus sent twelve disciples out two by two.
**Mark 6:7;12-13, GNT
6:7 He called the twelve disciples together and sent them out two by two. He gave them authority over the evil spirits.
6:12 So they went out and preached that people should turn away from their sins.
6:13 They drove out many demons, and rubbed olive oil on many sick people and healed them.
**** How to Use it;
1) First, Touch "Add Tutorial" at the BottomLeft of ProjectsView.
2) Touch "TutorialSeason006" at ProjectsView.
3) Choose One of Four at ScriptsView.
s001PILimageFontTest.py; This doesNot use Matplotlib but uses only Matplotlib TTF(TrueTypeFonts).
s002matplotlibPltPlot.py
s003matplotlibPltLegend.py
s004BarChartOnPolarAxis.py
4) Touch "RunScript" at the TopRight of EditScriptView.
5) Only for the first time, the warning that "AppleMetal Cache Directory doesNot Exist" appears,
Once needs to go back to EditScriptView,
and then touch "RunScript" at the TopRight of EditScriptView Again.
6) the script is Executed at RunScriptView.
****
Enjoy NumPy, Enjoy Matplotlib
Enjoy DataScience, DeepLearing, ReinforcementLearing.
Enjoy PeterJohnNumPyMatplotlib
--Yasushi Yassun Obata
more "pjThreeDim became Available to GLB File" Version;
We Added Two APIs in "pjThreeDim" module
in order to make you available to GLB file.
1) pj3d.getMeshNameListFromGLBFile( GLBfileAbsPath )
2) pj3d.createSCNSceneWithGLBFilePath(
GLBfileAbsPath,
meshName,
modelName,x,y,z )
In Order to know how to Use the APIs,
Please Check
"CameraAngle.create3dModelGLB(self,glbFileName,meshName,modelName) " method
in "TutorialSeason001/s009ThreeDimTest.py".
****Romans 12:6-8, NIV;
12:6 We have different gifts, according to the grace given to each of us. If your gift is prophesying, then prophesy in accordance with your faith;
12:7 if it is serving, then serve;
if it is teaching, then teach;
12:8 if it is to encourage, then give encouragement;
if it is giving, then give generously;
if it is to lead, do it diligently;
if it is to show mercy, do it cheerfully.
Best Regards,
--Yasushi Yassun Obata
2026.0329.2043 29 Mar
Minor Update of "EditScriptView-KeyWordSearch" Version;
We modified the "EditScriptView-KeyWordSearch"
'cause, when we touch "Previous" button or "Next" button, our Thumb finger of Right hand hides Number of Matches or LineNumber.
Now both Number of Matches and LineNumber is at the Left of both "Previous" button and "Next" button.
This is a Very Small Update but the change will make Easier to Use.
It seems "Search" in Japanese Language means "Happy" in English.
So we quoted the Scripture about "Happy".
****Psalm 1:1-3, GNT;Good News Translation;
1:1 Happy are those
who reject the advice of evil people,
who do not follow the example of sinners
or join those who have no use for God.
1:2 Instead, they find joy in obeying the Law of the Lord,
and they study it day and night.
1:3 They are like trees that grow beside a stream,
that bear fruit at the right time,
and whose leaves do not dry up.
They succeed in everything they do.
Best Regards,
--Yasushi Yassun Obata
2026.0316.2245 16 Mar
EditScriptView-KeyWordSearch Version;
For many years, our priority was Not implementing TextEditor with "KeyWord Search"
but implementing either NumPy or PyTorch.
But, Since Once we reached at the implementing both NumPy and PyTorch
as "PeterJohnNumPy", "PeterJohnNumPyMatplotlib", "PeterJohnPyTorch",
Now We Added "KeyWord Search" function to EditScriptView at this time.
So that You Can Search a Line and modify the Line easily.
So Far, we needed to use iPhone's "Notes" app in order to search a Line and modify the Line,
and needed to Paste the Script to the EditScriptView again.
but Now You Can Search a Line and modify the Line easily on "PeterJohn".
It seems "Search" in Japanese Language means "Happy" in English.
So we quoted the Scripture about "Happy".
****Psalm 1:1-3, GNT;
1:1 Happy are those
who reject the advice of evil people,
who do not follow the example of sinners
or join those who have no use for God.
1:2 Instead, they find joy in obeying the Law of the Lord,
and they study it day and night.
1:3 They are like trees that grow beside a stream,
that bear fruit at the right time,
and whose leaves do not dry up.
They succeed in everything they do.
Best Regards,
--Yasushi Yassun Obata
2026.0307.1606 7 Mar
'TutorialSeason003/s007AMACEaction.py' Added Version;
We Added Three APIs at this time.
Please Check the 'TutorialSeason003/s007AMACEaction.py' to know how to use the APIs.
import pjThreeDim as pj3d
import pjTkInter as tk
1) pj3d.setMaterial()
Check how to use in TutorialSeason003/pjAMACEactionCameraAngle.py;putSideWall() method;
it will make your 3D games beautiful.
2) pj3d.removeNodeHasPrefix()
Check how to use in TutorialSeason003/pjAMACEactionCameraAngle.py;initGame() method;
it will make easier to remove some of Nodes.
3) tk.removeNodeHasPrefix()
Check how to use in TutorialSeason003/pjAMACEactionCameraAngle.py;hideCastTheDemonOutOf(), hideBambooSpear(), hideWin1() method;
it will make easier to remove some of Nodes.
and One More Thing,
we CommentOuted the line of "midiSampler = nil"
at IntroScene.swift and RunScriptViewChild.swift
in
PeterJohnNumPyV4,
PeterJohnNumPyMatplotlib and
PeterJohnPyTorch.
So that these three Apps Can Avoid CRASH.
Best Regards,
--Yasushi Yassun Obata
2026.0301.0809 1 Mar
's005ThreeDimSquash.py', 's006MMLshepherd.py" and "Edit" button at ScriptView Version;
we Added Three at this time.
**1) TutorialSeason002/s005ThreeDimSquash.py;
This shows how to use pjThreeDim,
how to Create 3D games using "PeterJohn" app.
Please touch "TouchPadLeft" and "UpCursor"
in order to play this game.
TouchPadLeft - move Racket;
UpCursor - Replay;
**2) TutorialSeason003/s006MMLshepherd.py;
we added two of APIs into pjSound;
import pjSound as sound
sound.startNote(midiChannel,midiNote,midiVelocity);
sound.stopNote(midiChannel,midiNote,midiVelocity);
and added two of Classes,
pjMMLshepherdClass
pjMMLsheepClass
in order to show how to use the API, sound.noteStart, sound.noteStop;
Please check the code of s006MMLshepherd.py
in order to how to use the classes, pjMMLshepherdClass, pjMMLsheepClass.
Now you Can Play MML( Music Macro Language ) using "PeterJohn" app.
**3) "Edit" button at the TopRight of "ScriptsView";
so that you Can Remove any Non Required File.
Best Regards,
--Yasushi Yassun Obata
2026.0216.2016 16 Feb
the "PyRun_StringFlags() returns Nil but PyErr_Print() outputs Empty" Problem Solved and a 'Caffe' model Tutorial Removed Version;
we Changed Two Things at this time.
****1) we Solved the "PyRun_StringFlags() returns Nil but PyErr_Print() outputs Empty" Problem;
When you go to RunScriptView for the first time after you installed this App,
you needed to once go back to EditScriptView and then needed to go to RunScriptView again.
It was Due to that Py_FinalizeEx() wasNot called before Py_Initialize() was called.
and it was Hard to solve this problem
'cause the error message "fopen failed for data file: errno = 2 (No such file or directory), Errors found! Invalidating cache..." has Hidden this problem for many years.
As a result, the error message "fopen failed for data file: errno = 2 (No such file or directory), Errors found! Invalidating cache..." didNot relate to the problem that PyRun_StringFlags() returns Nil
for the first time when you installed this App.
****2) we Removed the tutorial
2.1) TutorialSeason003/s003DeepLearningColorizes.py
since it seems Richard Zhang's Image Colorization 'Caffe' model is No Longer provided.
Instead of it, Please use
"TutorialSeason008/s002PyTorchMpsDeepColorization.py"
on "PeterJohnPyTorch"
So that you Can use
Richard Zhang's Image Colorization 'PyTorch' model on 'PeterJohnPyTorch'.
Best Regards,
--Yasushi Yassun Obata
2026.0121.0534 22 Jan
opencv/cmake/iOS.cmake CMAKE_OSX_DEPLOYMENT_TARGET "15.0" Version;
Now You Can Use "OpenCV-Python" at "PeterJohnNumPyMatplotlib" on iOS15 iPhone such as iPhone6Splus.
"S" of "6S" stands for "Steve".
So we canNot Forget "iPhone6Splus".
****Examples Are the Same Even on iOS15;
TutorialSeason003/s006opencvPythonMachineLearning.py;
TutorialSeason003/s007opencvPythonVideoCaptureMachineLearning.py
Enjoy MachineLearning.
Enjoy DeepLearning.
Best Regards,
--Yasushi Yassun Obata
2025.1107.0551 08/11/2025
'OpenCV-Python' ( OpenCV-Python Bindings ) Available Version;
Now you Can Use 'OpenCV-Python' on 'PeterJohnNumPyMatplotlib' .
you will also be able to use 'OpenCV-Python' on
'PeterJohnNumPy' and 'PeterJohnPyTorch', maybe soon.
'OpenCV-Python' needs NumPy as the data representation,
so PeterJohnThreeDim which doesNot have NumPy,
canNot Support 'OpenCV-Python'.
if you need 'OpenCV-Python',
please Upgrade to 'PeterJohnNumPy', ''PeterJohnNumPyMatplotlib'
or 'PeterJohnPyTorch'.
****Two Examples;
We prepared two examples at this time;
TutorialSeason003/s006opencvPythonMachineLearning.py;
TutorialSeason003/s007opencvPythonVideoCaptureMachineLearning.py
****Two-Unimplemented Features;
OpenCV-Python on PeterJohnNumPy has Two-Unimplemented Features;
1) cap = cv2.VideoCapture()
OpenCV-Python on PeterJohnNumPy can't start
VideoCapture directly.
2) ret, img = cap.read()
OpenCV-Python on PeterJohnNumPy can't read frame
from VideoCamera directly.
But, instead of Abobe Two,
Use 'pjOpenCV as cvCPP';
So that you Can Edit the image captured from VideoCamera,
using 'OpenCV-Python'.
****How to Edit the image captured from VideoCamera;
1) setup VideoCapture;
import pjOpenCV as cvCPP
cvCPP.setVideoCaptureFPS(10)
##cvCPP.initVideoCaptureBackCamera()
cvCPP.initVideoCaptureFrontCamera()
##cvCPP.flipCamera() ## flipCamera()
2) start VideoCapture;
captured image is Stored as the UIImage 'srcImg';
cvCPP.startVideoCapture()
import cv2
3) To Get Captured image, use 'cvCPP.saveSrcImg()'.
cvCPP.saveSrcImg( srcAbsPath )
img = cv2.imread( srcAbsPath )
4) Edit the NumPy image, Using "OpenCV-Python".
5) To Reflect the edited NumPy image on the UIImage 'destImg',
use 'cvCPP.createDestImg';
cv2.imwrite(destAbsPath, img)
cvCPP.createDestImg(destAbsPath)
6) To Show the UIImage 'destImg', use 'cvCPP.showDestImg()'.
cvCPP.showDestImg()
Enjoy MachineLearning,
Enjoy DeepLearning,
--Yasushi Yassun Obata
2025.1025.2228 27/10/2025
"tk.stopTkTimer()" BugFix and Adjusted "s04timerTest.py" Version;
in "TutorialSeason001/s04timerTest.py",
we Found a Bug that "tk.stopTkTimer()" function didNot make the stop of Timer.
We Fixed the Bug and Adjusted "s04timerTest.py" a Little
so that User Can Understand Easily How to Use
both "tk.startTimerAfterFunction()" and "tk.stopTkTimer()" functions.
And in some of "TutorialSeason001" examples,
we Added "tk.stopTkTimer()"
So that each example Can Avoid influence from the other example
which Uses Timer in the Same Projects.
And One More Thing,
at this timing,
we added Six Functions Below to "tkInter" module.
It will help you to create some of Apps which use different Font Size or different Font Color,
especially to create some of Games.
**Added Function;;
tk.setLabelFontSize(labelNodeName, fontSize)
tk.setLabelFontColor(labelNodeName, r, g, b, a)
tk.setMainLabelFontSize(fontSize)
tk.setMainLabelFontColor(r, g, b, a)
tk.setTitleLabelFontSize(fontSize)
tk.setTitleLabelFontColor(r, g, b, a)
BestRegards,
--Yasushi Yassun Obata
2025.1002.0059 02/10/2025
"s003ConnectFourMctsCppGame.py" and "s004ConnectFourTraining.py" BugFix Version;
We Apologize that
MCTS, MonteCarloTreeSearch, C++ Version had a Bug that MCTS C++ version did Not explore the Game Tree,
so it was Very Weak.
We Fixed the Bug. Now MCTS C++ version explores the Game Tree.
So MCTS C++ Version Became Strong.
****TutorialSeason005/s003ConnectFourMctsCppGame.py
Became Strong.
****TutorialSeason005/s004ConnectFourTraining.py
which Uses the MCTS C++ Version to Train.
in The Results of Training,
RedReward and YellowReward became Almost Same Values such as 64.5 versus 64.
it means the MCTS C++ Version became Strong.
****TutorialSeason005/s005ConnectFourGame.py
which Uses the Trained Data on "s004ConnectFourTraining.py".
so it became Strong.
****Why did we make MCTS, MonteCarloTreeSearch, C++ Version??;;
NumPy is Ten times Faster than Python,
and C++ is Ten times Faster than NumPy,
As a Result, C++ is Hundred times Faster than Python.
Enjoy Deep Learning.
Enjoy Reinforcement Learning.
Best Regards,
--Yasushi Yassun Obata
2025.0927.1448 29/09/2025
"TutorialSeason001/s10ThreeDimAMACE.py" 5.4inch iPhone such as iPhone13mini Available Version;
in 'RunScriptView', fourDirectionPadNode and fourButtonMousePadNode Became Bigger,
So that You Can Play the Game "All Men Are Created Equal"
on 5.4inch, 375x812 Pixel, iPhone such as iPhone13mini.
Enjoy it.
--Yasushi Yassun Obata
2025.0923.2217 24/09/2025
"Non-threading-Thread" s001python3.py Version;
"pjCommandLineTools/s001python3.py" does No Longer Use "threading.Thread" library
'cause "threading.Thread" has been UnStable on CPython3.9.9.
This is Due to the GIL, Global Interpreter Lock.
If PCE, Python C Extension, became Thread-Safe,
if GIL was Abolished,
if the "immortal objects" problem of "free Threading" was Solved,
and if CPython became Ten Times Faster than CPython3.9.9,
we might resurRect the Thread version of s001python.py.
Until the day will come,
Enjoy the "Non-threading-Thread" s001python3.py version.
One More Thing,
If you need Speed or High Performance in CPython3.9.9,
please Consider Using "PeterJohnPyTorch"
'cause MPS, MetalPerformanceShader, is Available on the "PeterJohnPyTorch".
Best Regards,
--Yasushi Yassun Obata.
2025.0920.1727 22/09/2025
'pjThreeDim' module Added Version;
We are trying to Add 'pjThreeDim' module for All the 'PeterJohn' Series
except for the App which doesNot have 'EditScript' function such as 'PeterJohnNumpyConnectFour'.
Continuing to that we added 'pjThreeDim' to PeterJohnPyTorch,
we added 'pjThreeDim' to PeterJohnNumPyMatplotlib.
PeterJohnV4, PeterJohnNumpy, PeterJohnNumpyMatplotlib and PeterJohnPyTorch
have both 'EditScript' function and 'RunScript' function.
PeterJohnNumpyConnectFour has Only 'RunScript' function.
'pjThreeDim' module provides the feature for user to create 3D Model Games.
You Can Play the game "All Men Are Created Equal" which uses 'pjThreeDim' module
from
'TutorialSeason001/s10ThreeDimAMACE.py'.
AMACE stands for 'All Men Are Created Equal'.
Best Regards,
--Yasushi Yassun Obata
2025.0908.1814 08/09/2025
"LSTMtrainingMatplotlibPyPlot" Version;
we Added an Example which shows LSTM Training Result Using "matplotlib.pyplot".
Please Check the example Below.
TutorialSeason006/scripts/s006LSTMtrainingMatplotlibPyPlot.py
Enjoy DeepLearning,
Enjoy NumPy,
Enjoy PeterJohnNumPyMatplotlib.
--Yassun
2023.1223.1902 23/12/2023
"in LandScape mode, inputResultLabel, Position of Cursor BugFixed" and "Stopped PyFinalizeEx(()" Version;
(1) In LandScape mode, at the InputResultLabel, position of Cursor was Wrong, we Fixed the Bug at this time.
(2)we Stopped PyFinalizeEx() 'cause the python Script which uses Thread in the LandScape mode will CRASH When it executes PyFinalizeEx().
****Ezekiel 34:3-6, GNT;
34:3 You drink the milk, wear clothes made from the wool, and kill and eat the finest sheep. But you never tend the sheep.
34:4 You have not taken care of the weak ones, healed the ones that are sick, bandaged the ones that are hurt, brought back the ones that wandered off, or looked for the ones that were lost. Instead, you treated them cruelly.
34:5 Because the sheep had no shepherd, they were scattered, and wild animals killed and ate them.
34:6 So my sheep wandered over the high hills and the mountains.
They were scattered over the face of the earth, and no one looked for them or tried to find them.
Even if you live in the evil country which Evil Emperor rules, You MustNot Lose the Hope that King Jesus comes.
--Yassun
2023.1222.2129 22/12/2023
Tutorial ReArranged Version;
some of scripts were Moved or ReNumbered at this time.
**1of4;
TutorialSeason001/scripts/s08pjBlueTooth.py was Moved from TutorialSeason005.
'cause both 'pjBlueTooth' module and 'pjBlueToothClass.py' doNot Need " NumPy ".
**2of4;
The four scripts Below were moved from TutorialSeason003,
in order to begin Tutorial About " NumPy " from TutorialSeason004.
TutorialSeason004/scripts/s001PreparingTrainingPlot.py
TutorialSeason004/scripts/s002LSTMtrainingPlot.py
TutorialSeason004/scripts/s003CartPoleNoLearning.py
TutorialSeason004/scripts/s004CartPolePolicyGradient.py
**3of4;
The four scripts Below were ReNumbered.
TutorialSeason004/scripts/s005SquashPolicyGradient.py
TutorialSeason004/scripts/s006SquashRMSprop.py
TutorialSeason004/scripts/s007SquashAdaBound.py
**4of4;
The one script Below was ReNumbered.
TutorialSeason005/scripts/s006ConnectFourBlueToothGame.py
****So we Updated Below;;
'cause
TutorialSeason001/scripts/s08pjBlueTooth.py was Moved from TutorialSeason005
and 'cause
TutorialSeason005/scripts/s006ConnectFourBlueToothGame.py was ReNumbered.
****
"pjBlueTooth" and "pjConnectFourBlueTooth" Version;
Now You Can Use "pjBlueTooth" on PeterJohnNumPy.
And You Can Play "pjConnectFour" by Two People Using "pjBlueTooth".
We Added "pjBlueTooth" module and "pjBlueToothClass" at this time
in order to use Apple's CoreBlueTooth on PeterJohnNumPy.
****1of2; pjBlueTooth;
This is a Basic Module to use Apple's CoreBlueTooth
on PeterJohnNumPy.
bindOpponentDeviceNamesUpdated()
bindPeripheralMgrDidReceiveWrite()
init()
selectOpponentDeviceByUUID()
sendMsgStr()
cleanUp()
****2of2; pjBlueToothClass.py
This is a Basic Class to use "pjBlueTooth" Module
on PeterJohnNumPy.
blueToothInit(self)
opponentDeviceNamesUpdated(self, opponentDeviceNamesCsvStr)
keyPress(self, eventKeySym)
peripheralMgrDidReceiveWrite(self, msgStr)
afterConnected(self)
clickFirst(self, eventNum)
****TutorialSeason001/scripts/s08pjBlueTooth.py;
This is the First Example to Show How to Use
both "pjBlueTooth" module and "pjBlueToothClass".
****pjConnectFourBlueToothGameClass.py;
This is a SubClass of "pjBlueToothClass",
which extends "pjBlueToothClass"
in order to Play the "ConnectFour"
Using "pjBlueTooh" by Two People.
This is Used in the "s007ConnectFourBlueToothGame.py".
****TutorialSeason005/scripts/s006ConnectFourBlueToothGame.py
This is the Second Example to Show How to Use
both "pjBlueTooth" module and "pjBlueToothClass".
Now You Can Play "ConnectFour" by Two People.
****Ezekiel 36:25-29, GNT;
36:25 I will sprinkle clean water on you and make you clean from all your idols and everything else that has defiled you.
36:26 I will give you a new heart and a new mind. I will take away your stubborn heart of stone and give you an obedient heart.
36:27 I will put my Spirit in you and will see to it that you follow my laws and keep all the commands I have given you.
36:28 Then you will live in the land I gave your ancestors. You will be my people, and I will be your God.
36:29 I will save you from everything that defiles you. I will command the grain to be plentiful,
so that you will Not have any more famines.
36:30 I will increase the yield of your fruit trees and your fields, so that there will be No more famines to disgrace you among the nations.
Go Forward along the Path which Holy Spirit Showed You.
--Yassun
2023.1217.1009 17/12/2023
"pjBlueTooth" and "pjConnectFourBlueTooth" Version;
Now You Can Use "pjBlueTooth" on PeterJohnNumPy.
And You Can Play "pjConnectFour" by Two People Using "pjBlueTooth".
We Added "pjBlueTooth" module and "pjBlueToothClass" at this time
in order to use Apple's CoreBlueTooth on PeterJohnNumPy.
****1of2; pjBlueTooth;
This is a Basic Module to use Apple's CoreBlueTooth
on PeterJohnNumPy.
bindOpponentDeviceNamesUpdated()
bindPeripheralMgrDidReceiveWrite()
init()
selectOpponentDeviceByUUID()
sendMsgStr()
cleanUp()
****2of2; pjBlueToothClass.py
This is a Basic Class to use "pjBlueTooth" Module
on PeterJohnNumPy.
blueToothInit(self)
opponentDeviceNamesUpdated(self, opponentDeviceNamesCsvStr)
keyPress(self, eventKeySym)
peripheralMgrDidReceiveWrite(self, msgStr)
afterConnected(self)
clickFirst(self, eventNum)
****s006pjBlueTooth.py;
This is the First Example to Show How to Use
both "pjBlueTooth" module and "pjBlueToothClass".
****pjConnectFourBlueToothGameClass.py;
This is a SubClass of "pjBlueToothClass",
which extends "pjBlueToothClass"
in order to Play the "ConnectFour"
Using "pjBlueTooh" by Two People.
This is Used in the "s007ConnectFourBlueToothGame.py".
****s007ConnectFourBlueToothGame.py;
This is the Second Example to Show How to Use
both "pjBlueTooth" module and "pjBlueToothClass".
Now You Can Play "ConnectFour" by Two People.
****Ezekiel 36:25-29, GNT;
36:25 I will sprinkle clean water on you and make you clean from all your idols and everything else that has defiled you.
36:26 I will give you a new heart and a new mind. I will take away your stubborn heart of stone and give you an obedient heart.
36:27 I will put my Spirit in you and will see to it that you follow my laws and keep all the commands I have given you.
36:28 Then you will live in the land I gave your ancestors. You will be my people, and I will be your God.
36:29 I will save you from everything that defiles you. I will command the grain to be plentiful,
so that you will Not have any more famines.
36:30 I will increase the yield of your fruit trees and your fields, so that there will be No more famines to disgrace you among the nations.
Go Forward along the Path which Holy Spirit Showed You.
--Yassun
2023.1216.0951 16/12/2023
PlotlyGraphObjects and pjWebView Version;
***1of2; Now You Can Plot with PlotlyGraphObjects.
**Not Yet Implemented Features;
(1) PlotlyExpress,
'cause, though it Needs "Pandas", but PeterJohnNumPy hasNot Yet Had "Pandas",
"Pandas" isNot PurePython Library.
instead of PlotlyExpress, Use PlotlyGraphObjects.
(2) Write Image Function;
'cause, though it Needs "Kaleido", but PeterJohnNumPy hasNot Yet Had "Kaleido",
"Kaleido" isNot PurePython Library.
instead of Write Image Function, Use Write HTML Function.
****2of2; We Added pjWebView.
pjWebView is Easier to Show some of Image files than Using pjTkInter.createSprite() .
Since pjTkInter.createSprite() uses SpriteKIt and SpriteKit Caches Image FileName,
SpriteKit has Needed to change image FileName in order to change image.
Use pjWebView
in order to Show HTML file which is outputted from PlotlyGraphObjects
or to Show some of Image files such as PNG file which is outputted from Matplotlib.
Enjoy NumPy,
Enjoy ReinforcementLearning,
Enjoy PeterJohnNumPyMatplotlib.
--Yasushi Yassun Obata
2023.1119.0842 20/11/2023
" TutorialSeason005/scripts/s005ConnectFourGame.py " Modification Version;;
it's difficult to explain about this version.
(1)First, run "TutorialSeason005/scripts/s005ConnectFourGame.py".
you will see the error message,
"There wasNot Trained Model. Please Create Trained Model Using 's004ConnectFourTraining.py' "
(2)Second, run "TutorialSeason005/scripts/s004ConnectFourTraining.py".
(3)Third, run "TutorialSeason005/scripts/s005ConnectFourGame.py".
But you haveNot been Able to begin a New Game So Far.
So we Added a Message Below,
"Though you Touched Button 'One' or Button 'Two', if you canNot begin a New Game, Please ReStart this App."
After ReStarted this App, you Can begin a New Game.
we Added just one Message.
but if there wasNot the Message, you willNot have been Able to begin any New Game.
That's it.
--Yassun.
2023.1111.1405 11/11/2023
2023.1105.1843 06/11/2023
"pjThreeDim became Available to GLB File" Version;
We Added Two APIs in "pjThreeDim" module
in order to make you available to GLB file.
1) pj3d.getMeshNameListFromGLBFile( GLBfileAbsPath )
2) pj3d.createSCNSceneWithGLBFilePath(
GLBfileAbsPath,
meshName,
modelName,x,y,z )
In Order to know how to Use the APIs,
Please Check
"CameraAngle.create3dModelGLB(self,glbFileName,meshName,modelName) " method
in "TutorialSeason001/s009ThreeDimTest.py".
****Romans 12:6-8, NIV;
12:6 We have different gifts, according to the grace given to each of us. If your gift is prophesying, then prophesy in accordance with your faith;
12:7 if it is serving, then serve;
if it is teaching, then teach;
12:8 if it is to encourage, then give encouragement;
if it is giving, then give generously;
if it is to lead, do it diligently;
if it is to show mercy, do it cheerfully.
Best Regards,
--Yasushi Yassun Obata
more Version 2026.0329.2043 29 Mar
Data Not Collected The developer does not collect any data from this app.